我们在做一些业务系统的时候,经常会用到一些获取时间段的情况。比如要统计某一周、某月、某年 这样一些时间区间内的一些业务数据。这时候我们就需要获取当前时间段内的一些起止日期。这里分享一个通用的日期辅助类,可以根据传入的日期快速的获取它所在Week、Month、Year的起止日期。
public static class DateHelper
{
public static DateTime WeekFirstDay(this DateTime dt)
{
dt = DateTime.Parse(dt.ToString("yyyy-MM-dd"));
if (dt.DayOfWeek == DayOfWeek.Sunday)
{
return dt.AddDays(-6);
}
return dt.AddDays(1 - (int)dt.DayOfWeek);
}
public static DateTime WeekEndDay(this DateTime dt)
{
dt = DateTime.Parse(dt.ToString("yyyy-MM-dd"));
if (dt.DayOfWeek == DayOfWeek.Sunday)
{
return dt;
}
return dt.AddDays(7 - (int)dt.DayOfWeek);
}
public static DateTime MonthFirstDay(this DateTime dt)
{
dt = DateTime.Parse(dt.ToString("yyyy-MM-dd"));
return dt.AddDays(1 - dt.Day);
}
public static DateTime MonthEndDay(this DateTime dt)
{
dt = DateTime.Parse(dt.ToString("yyyy-MM-dd"));
return dt.AddDays(1 - dt.Day).AddMonths(1).AddDays(-1);
}
public static DateTime YearFirstDay(this DateTime dt)
{
return new DateTime(dt.Year, 1, 1);
}
public static DateTime YearEndDay(this DateTime dt)
{
return new DateTime(dt.Year, 12, 31);
}
}