/// <summary> /// Gets the DayOfWeek from the given eDayOfWeekRecurrence /// </summary> /// <param name="byDays"></param> /// <returns></returns> protected virtual DayOfWeek GetRelativeDayOfWeek(eDayOfWeekRecurrence byDays) { if ((byDays & eDayOfWeekRecurrence.Monday) != 0) return (DayOfWeek.Monday); if ((byDays & eDayOfWeekRecurrence.Tuesday) != 0) return (DayOfWeek.Tuesday); if ((byDays & eDayOfWeekRecurrence.Wednesday) != 0) return (DayOfWeek.Wednesday); if ((byDays & eDayOfWeekRecurrence.Thursday) != 0) return (DayOfWeek.Thursday); if ((byDays & eDayOfWeekRecurrence.Friday) != 0) return (DayOfWeek.Friday); if ((byDays & eDayOfWeekRecurrence.Saturday) != 0) return (DayOfWeek.Saturday); return (DayOfWeek.Sunday); }
/// <summary> /// AddRRuleByDay /// </summary> /// <param name="sb"></param> /// <param name="repeat"></param> private void AddRRuleByDay(StringBuilder sb, eDayOfWeekRecurrence repeat) { sb.Append(";BYDAY="); if ((repeat & eDayOfWeekRecurrence.Sunday) != 0) sb.Append("SU,"); if ((repeat & eDayOfWeekRecurrence.Monday) != 0) sb.Append("MO,"); if ((repeat & eDayOfWeekRecurrence.Tuesday) != 0) sb.Append("TU,"); if ((repeat & eDayOfWeekRecurrence.Wednesday) != 0) sb.Append("WE,"); if ((repeat & eDayOfWeekRecurrence.Thursday) != 0) sb.Append("TH,"); if ((repeat & eDayOfWeekRecurrence.Friday) != 0) sb.Append("FR,"); if ((repeat & eDayOfWeekRecurrence.Saturday) != 0) sb.Append("SA,"); sb.Length--; }
private int GetNumberOfDays(eDayOfWeekRecurrence daysOfWeek) { int days = 0; if ((daysOfWeek & eDayOfWeekRecurrence.Friday) != 0) days++; if ((daysOfWeek & eDayOfWeekRecurrence.Monday) != 0) days++; if ((daysOfWeek & eDayOfWeekRecurrence.Saturday) != 0) days++; if ((daysOfWeek & eDayOfWeekRecurrence.Sunday) != 0) days++; if ((daysOfWeek & eDayOfWeekRecurrence.Thursday) != 0) days++; if ((daysOfWeek & eDayOfWeekRecurrence.Tuesday) != 0) days++; if ((daysOfWeek & eDayOfWeekRecurrence.Wednesday) != 0) days++; return days; }
private bool RepeatsOnSingleDayOnly(eDayOfWeekRecurrence dow) { return dow == eDayOfWeekRecurrence.Monday || dow == eDayOfWeekRecurrence.Tuesday || dow == eDayOfWeekRecurrence.Wednesday || dow == eDayOfWeekRecurrence.Thursday || dow == eDayOfWeekRecurrence.Friday || dow == eDayOfWeekRecurrence.Saturday || dow == eDayOfWeekRecurrence.Sunday; }
public static int TotalNumberOfDays(DateTime startDate, DateTime endDate, eDayOfWeekRecurrence daysOfWeek) { int totalDays=0; if (daysOfWeek == eDayOfWeekRecurrence.All) return (int)Math.Ceiling(endDate.Subtract(startDate).TotalDays); if ((daysOfWeek & eDayOfWeekRecurrence.Friday) != 0) totalDays += TotalDays(startDate, endDate, DayOfWeek.Friday); if ((daysOfWeek & eDayOfWeekRecurrence.Monday) != 0) totalDays += TotalDays(startDate, endDate, DayOfWeek.Monday); if ((daysOfWeek & eDayOfWeekRecurrence.Saturday) != 0) totalDays += TotalDays(startDate, endDate, DayOfWeek.Saturday); if ((daysOfWeek & eDayOfWeekRecurrence.Sunday) != 0) totalDays += TotalDays(startDate, endDate, DayOfWeek.Sunday); if ((daysOfWeek & eDayOfWeekRecurrence.Thursday) != 0) totalDays += TotalDays(startDate, endDate, DayOfWeek.Thursday); if ((daysOfWeek & eDayOfWeekRecurrence.Tuesday) != 0) totalDays += TotalDays(startDate, endDate, DayOfWeek.Tuesday); if ((daysOfWeek & eDayOfWeekRecurrence.Wednesday) != 0) totalDays += TotalDays(startDate, endDate, DayOfWeek.Wednesday); return totalDays; }
internal static bool HasDay(DayOfWeek dayOfWeek, eDayOfWeekRecurrence days) { if (dayOfWeek == DayOfWeek.Monday && (days & eDayOfWeekRecurrence.Monday) != 0) return true; if (dayOfWeek == DayOfWeek.Tuesday && (days & eDayOfWeekRecurrence.Tuesday) != 0) return true; if (dayOfWeek == DayOfWeek.Wednesday && (days & eDayOfWeekRecurrence.Wednesday) != 0) return true; if (dayOfWeek == DayOfWeek.Thursday && (days & eDayOfWeekRecurrence.Thursday) != 0) return true; if (dayOfWeek == DayOfWeek.Friday && (days & eDayOfWeekRecurrence.Friday) != 0) return true; if (dayOfWeek == DayOfWeek.Saturday && (days & eDayOfWeekRecurrence.Saturday) != 0) return true; if (dayOfWeek == DayOfWeek.Sunday && (days & eDayOfWeekRecurrence.Sunday) != 0) return true; return false; }
private void OnRepeatOnDaysOfWeekChanged(eDayOfWeekRecurrence oldValue, eDayOfWeekRecurrence newValue) { OnPropertyChanged(new PropertyChangedEventArgs("RepeatOnDaysOfWeek")); }