public static IList <DateTime> GetDaysOfWeek(this DateTime date, DayOfWeekFlags days) { var daysOfWeek = days.ToDays(); var dates = new DateTime[daysOfWeek.Count]; for (int i = 0; i < dates.Length; i++) { dates[i] = date.GetDayOfWeek(daysOfWeek[i]); } return(dates); }
public static IDictionary <DayOfWeek, int> CalculateDistanceToNextDay(this DayOfWeekFlags flags) { var days = flags.ToDays(); return(Enum.GetValues(typeof(DayOfWeek)).Cast <DayOfWeek>().ToDictionary(d => d, d => { var value = d; do { value = (int)value == 6 ? 0 : value + 1; } while (!days.Contains(value)); return (value <= d ? (int)value + 7 : (int)value) - (int)d; })); }