你怎么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; }