public void FirstDateOfWeek() { DateTime date = new DateTime(2008, 11, 27); DateTime result = new DateTime(2008, 11, 24); Assert.AreEqual(result, date.FirstDateTimeOfWeek(DayOfWeek.Monday)); Assert.AreEqual(result, result.FirstDateTimeOfWeek(DayOfWeek.Monday)); date = new DateTime(2008, 11, 30); result = date; Assert.AreEqual(result, date.FirstDateTimeOfWeek(DayOfWeek.Sunday)); }
public static DateTime GetEffectiveDate(DatePickerHelpValues value, DateTime relativeToDate) { switch (value) { case DatePickerHelpValues.LastWeek: return relativeToDate.FirstDateTimeOfWeek().AddDays(-1).FirstDateTimeOfWeek(); case DatePickerHelpValues.TwoWeeksAgo: return relativeToDate.FirstDateTimeOfWeek().AddDays(-8).FirstDateTimeOfWeek(); case DatePickerHelpValues.LastMonth: return relativeToDate.GetFirstDayOfMonth().AddMonths(-1).GetFirstDayOfMonth(); case DatePickerHelpValues.TwoMonthsAgo: return relativeToDate.GetFirstDayOfMonth().AddMonths(-2).GetFirstDayOfMonth(); case DatePickerHelpValues.SixMonthsAgo: return relativeToDate.GetFirstDayOfMonth().AddMonths(-6).GetFirstDayOfMonth(); case DatePickerHelpValues.LastYear: return relativeToDate.GetFirstDayOfYear().AddYears(-1).GetFirstDayOfYear(); } return relativeToDate; }