Как установить DateTime в первый месяц в С#?
Установить DateTime в начало месяца
Ответ 1
var now = DateTime.Now;
var startOfMonth = new DateTime(now.Year,now.Month,1);
Ответ 2
Что-то вроде этого будет работать
DateTime firstDay = DateTime.Today.AddDays(1 - DateTime.Today.Day);
Ответ 3
Немного поздно для вечеринки, но вот метод расширения, который помогло
public static class DateTimeExtensions
{
public static DateTime FirstDayOfMonth(this DateTime dt)
{
return new DateTime(dt.Year, dt.Month, 1);
}
}
Ответ 4
public static DateTime FirstDayOfMonth(this DateTime current)
{
return current.AddDays(1 - current.Day);
}
Ответ 5
DateTime now = DateTime.Now;
DateTime date = new DateTime(now.Year, now.Month, 1);
Вы можете использовать что-нибудь еще вместо DateTime.Now
Ответ 6
Это должно быть эффективным и правильным:
DateTime RoundDateTimeToMonth(DateTime time)
{
long ticks = time.Ticks;
return new DateTime((ticks / TimeSpan.TicksPerDay - time.Day + 1) * TimeSpan.TicksPerDay, time.Kind);
}
Здесь ticks / TimeSpan.TicksPerDay
возвращает количество полных дней до заданных time
и - time.Day + 1
сбрасывает этот счет до начала месяца.
Ответ 7
Я только что создал несколько методов расширения, основанных на ответе Ника и других на SO
public static class DateTimeExtensions
{
/// <summary>
/// get the datetime of the start of the week
/// </summary>
/// <param name="dt"></param>
/// <param name="startOfWeek"></param>
/// <returns></returns>
/// <example>
/// DateTime dt = DateTime.Now.StartOfWeek(DayOfWeek.Monday);
/// DateTime dt = DateTime.Now.StartOfWeek(DayOfWeek.Sunday);
/// </example>
/// <remarks>http://stackoverflow.com/a/38064/428061</remarks>
public static DateTime StartOfWeek(this DateTime dt, DayOfWeek startOfWeek)
{
var diff = dt.DayOfWeek - startOfWeek;
if (diff < 0)
diff += 7;
return dt.AddDays(-1 * diff).Date;
}
/// <summary>
/// get the datetime of the start of the month
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
/// <remarks>http://stackoverflow.com/a/5002582/428061</remarks>
public static DateTime StartOfMonth(this DateTime dt)
{
var now = DateTime.Now;
return new DateTime(now.Year, now.Month, 1);
}
/// <summary>
/// get datetime of the start of the year
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static DateTime StartOfYear(this DateTime dt)
{
var now = DateTime.Now;
return new DateTime(now.Year, 1, 1);
}
}
Ответ 8
Надеюсь, это поможет вам.
textbox1.Text = "01-" + DateTime.Now.ToString( "MMM-yyyy" );
Ответ 9
var currentDate = DateTime.UtcNow.Date;
var startDateTimeOfCurrentMonth = currentDate.AddDays(-(currentDate.Day - 1));