var lastDay = new DateTime(2009, 12, 31);
var firstDay = new DateTime(2010, 1, 1);
bool isSameWeek = (int)lastDay.DayOfWeek < (int)firstDay.DayOfWeek;
Run Code Online (Sandbox Code Playgroud)
编辑:你没有问这个,但我认为计算两个日期是否在同一周内更有意思.这也适用于您的问题,但它也可以更广泛地解决问题.它的工作原理是计算每个日期的星期开始,然后比较DateTime值的日期部分是否相同(以防每个日期传入不同的时间).
/// <summary>
/// Determines whether two dates fall in the same week span.
/// </summary>
/// <param name="left">The left DateTime to compare.</param>
/// <param name="right">The right DateTime to compare.</param>
/// <returns>
/// </returns>
public bool IsSameWeek(DateTime left, DateTime right) {
return AreDatePartsEqual(GetStartOfWeek(left), GetStartOfWeek(right));
}
/// <summary>
/// Gets the start of week.
/// </summary>
/// <param name="date">The date.</param>
/// <returns></returns>
public DateTime GetStartOfWeek(DateTime date) {
return date.AddDays(-1 * (int)date.DayOfWeek);
}
/// <summary>
/// Compares two DateTimes using only the Date Part for equality
/// </summary>
/// <param name="left">The left DateTime to compare.</param>
/// <param name="right">The right DateTime to compare.</param>
/// <returns></returns>
public bool AreDatePartsEqual(DateTime left, DateTime right) {
return
left.Day == right.Day &&
left.Month == right.Month &&
left.Year == right.Year;
}
Run Code Online (Sandbox Code Playgroud)