public static bool ContainsDayOfWeek(this ITimePeriod dateTimeRange, DayOfWeek dayOfWeek) { if (dateTimeRange.TotalDays() >= 7) { return(true); } //Sunday 0 //Monday 1 //Tuesday 2 //Wednesday 3 //Thursday 4 //Friday 5 //Saturday 6 var firstDayOfTheWeekIndex = (int)dateTimeRange.FirstDay.DayOfWeek; var lastDayOfTheWeekIndex = (int)dateTimeRange.LastDay.DayOfWeek; var dayOfWeekIndex = (int)dayOfWeek; if (firstDayOfTheWeekIndex > lastDayOfTheWeekIndex) { //eg start Friday 5, end Tuesday 2, test Monday 1 //eg start Friday 5, end Tuesday 2, test Saturday 6 return(dayOfWeekIndex >= firstDayOfTheWeekIndex || dayOfWeekIndex <= lastDayOfTheWeekIndex); } else { //eg start Sunday 0, end Thursday 4, test Monday 1 return(dayOfWeekIndex >= firstDayOfTheWeekIndex && dayOfWeekIndex <= lastDayOfTheWeekIndex); } }