public static class DateTimeExtension
{
public const DayOfWeek TheFirstDayOfWeek = DayOfWeek.Monday;
private static int GetDayOfWeek(this DateTime date, DayOfWeek theFirstDayOfWeek = TheFirstDayOfWeek)
{
return ((int)date.DayOfWeek - (int)theFirstDayOfWeek + 7) % 7;
}
public static bool IsInSameWeek(this DateTime firstDate, DateTime secondDate,
DayOfWeek theFirstDayOfWeek = TheFirstDayOfWeek)
{
var daySpan = (secondDate.Date - firstDate.Date).TotalDays;
if (daySpan >= 7d || daySpan <= -7d)
{
return false;
}
var fisrtDayOfWeek = firstDate.GetDayOfWeek(theFirstDayOfWeek);
var secondDayOfWeek = secondDate.GetDayOfWeek(theFirstDayOfWeek);
return (daySpan >= 0) ^ (fisrtDayOfWeek >= secondDayOfWeek);
}
public static bool IsLastWeek(this DateTime date, DayOfWeek theFirstDayOfWeek = TheFirstDayOfWeek)
{
return date.AddDays(7).IsInSameWeek(DateTime.Today, theFirstDayOfWeek);
}
public static bool IsThisWeek(this DateTime date, DayOfWeek theFirstDayOfWeek = TheFirstDayOfWeek)
{
return date.IsInSameWeek(DateTime.Today, theFirstDayOfWeek);
}
}
//日期轉DataTime
Convert.ToDateTime("2018-12-11")