你怎么find这个月的最后一天?

可能重复:
如何获得一个月的最后一天?

到目前为止,我有这样的:

DateTime createDate = new DateTime(year, month, 1).AddMonths(1).AddDays(-1); 

有没有更好的办法?

如何使用DaysInMonth

 DateTime createDate = new DateTime (year, month, DateTime.DaysInMonth(year, month)); 

(注意自我 – 必须在野田时间使这容易…)

您可以使用DateTime.DaysInMonth(year,month)方法获取任何给定月份的天数。

我在CodePlex的一个有用的DateTime扩展库中find了一个优雅的方法:

http://datetimeextensions.codeplex.com/

以下是一些示例代码:

  public static DateTime First(this DateTime current) { DateTime first = current.AddDays(1 - current.Day); return first; } public static DateTime First(this DateTime current, DayOfWeek dayOfWeek) { DateTime first = current.First(); if (first.DayOfWeek != dayOfWeek) { first = first.Next(dayOfWeek); } return first; } public static DateTime Last(this DateTime current) { int daysInMonth = DateTime.DaysInMonth(current.Year, current.Month); DateTime last = current.First().AddDays(daysInMonth - 1); return last; } 

它还有其他一些有用的扩展,可能会对您有所帮助。

如果您对自定义代码版本感兴趣:

 var anyDt = DateTime.Now; var lastDayOfMonth = anyDt.AddMonths(1).AddDays(anyDt.AddMonths(1).Day).Date; 

要么:

 var anyDt = DateTime.Now; var lastDayOfMonth = anyDt.AddDays(1-anyDt.Day).AddMonths(1).AddDays(-1).Date; 

或作为一种方法:

 DateTime LastDayInMonth(DateTime anyDt) { return anyDt.AddMonths(1).AddDays(anyDt.AddMonths(1).Day).Date; } 

或作为扩展方法:

 DateTime LastDayInMonth(DateTime this anyDt) { return anyDt.AddMonths(1).AddDays(anyDt.AddMonths(1).Day).Date; }