public static class DateTimeExtensions
{
public static DateTime StartOfWeek(this DateTime dt, DayOfWeek startOfWeek)
{
int diff = (7 + (dt.DayOfWeek - startOfWeek)) % 7;
return dt.AddDays(-1 * diff).Date;
}
public static DateTime EndOfWeek(this DateTime dt, DayOfWeek startOfWeek)
{
int diff = (7 - (dt.DayOfWeek - startOfWeek)) % 7;
return dt.AddDays(1 * diff).Date;
}
public static DateTime StartOfQuarter(this DateTime dt)
{
DateTime startQuarter = dt.AddMonths(0 - (dt.Month - 1) % 3).AddDays(1 - dt.Day);
return startQuarter;
}
public static DateTime EndOfQuarter(this DateTime dt)
{
DateTime startQuarter = dt.AddMonths(0 - (dt.Month - 1) % 3).AddDays(1 - dt.Day); //本季度初
DateTime endQuarter = startQuarter.AddMonths(3).AddDays(-1); //本季度末
return endQuarter;
}
public static int DateDiff(this DateTime dateStart, DateTime dateEnd)
{
DateTime start = Convert.ToDateTime(dateStart.ToShortDateString());
DateTime end = Convert.ToDateTime(dateEnd.ToShortDateString());
TimeSpan sp = end.Subtract(start);
return sp.Days;
}
}
public class DBSearch
{
/// <summary>
/// 本周开始时间
/// </summary>
public DateTime sd { get; set; } = DateTime.Now.StartOfWeek(DayOfWeek.Monday); //DateTime.Now.AddDays(0 - Convert.ToInt16(DateTime.Now.DayOfWeek) );
/// <summary>
/// 本周截止时间
/// </summary>
public DateTime ed { get; set; } = DateTime.Now.EndOfWeek(DayOfWeek.Sunday); //DateTime.Now.AddDays(6 - Convert.ToInt16(DateTime.Now.DayOfWeek) );//+1
/// <summary>
/// 季度开始时间
/// </summary>
public DateTime sdjd { get; set; } = DateTime.Now.StartOfQuarter(); //DateTime.Now.AddDays(0 - Convert.ToInt16(DateTime.Now.DayOfWeek) );
/// <summary>
/// 季度截止时间
/// </summary>
public DateTime edjd { get; set; } = DateTime.Now.EndOfQuarter(); //DateTime.Now.AddDays(6 - Convert.ToInt16(DateTime.Now.DayOfWeek) );//+1
}