public OpeningTimes SetRegularOpening(DayOfWeek Weekday, HourMin Begin, HourMin End) { _RegularOpenings[(int)Weekday] = new RegularHours(Weekday, Begin, End); return(this); }
public OpeningTimes(DayOfWeek FromWeekday, DayOfWeek ToWeekday, HourMin Begin, HourMin End, String FreeText = "") : this(FreeText, IsOpen24Hours : false) { SetRegularOpening(FromWeekday, ToWeekday, Begin, End); }
/// <summary> /// Create a new specification of a regular recurring operation or access hours. /// </summary> /// <param name="Weekday">Day of the week, from Monday till Sunday.</param> /// <param name="Begin">Begin of the regular period given in hours and minutes. Must be in 24h format.</param> /// <param name="End">End of the regular period, syntax as for period_begin. Must be later than the begin.</param> public RegularHours(DayOfWeek Weekday, HourMin Begin, HourMin End) { #region Initial checks if (Begin > End) { throw new ArgumentException("Begin time must be before the end time!"); } #endregion this._Weekday = Weekday; this._Begin = Begin; this._End = End; }
public OpeningTimes SetRegularOpening(DayOfWeek FromWeekday, DayOfWeek ToWeekday, HourMin Begin, HourMin End) { var _FromWeekday = (int)FromWeekday; var _ToWeekday = (int)ToWeekday; if (_ToWeekday < _FromWeekday) { _ToWeekday += 7; } for (var weekday = _FromWeekday; weekday <= _ToWeekday; weekday++) { _RegularOpenings[weekday % 7] = new RegularHours((DayOfWeek)(weekday % 7), Begin, End); } return(this); }
public static Boolean TryParse(String Text, out OpeningTimes OpeningTimes) { OpeningTimes = null; var match = Regex.Match(Text, "([a-zA-Z]+) - ([a-zA-Z]+) (([0-9]{2}:[0-9]{2})h - ([0-9]{2}:[0-9]{2})h|closed)"); if (!match.Success) { return(false); } #region Parse weekdays DayOfWeek FromWeekday; switch (match.Groups[1].Value.ToLower()) { case "mo": case "mon": case "monday": FromWeekday = DayOfWeek.Monday; break; case "tu": case "di": case "tue": case "tuesday": FromWeekday = DayOfWeek.Tuesday; break; case "we": case "mi": case "wed": case "wednesday": FromWeekday = DayOfWeek.Wednesday; break; case "th": case "do": case "thu": case "thursday": FromWeekday = DayOfWeek.Thursday; break; case "fr": case "fri": case "friday": FromWeekday = DayOfWeek.Friday; break; case "sa": case "sat": case "saturday": FromWeekday = DayOfWeek.Saturday; break; case "su": case "so": case "sun": case "sunday": FromWeekday = DayOfWeek.Sunday; break; default: return(false); } DayOfWeek ToWeekday; switch (match.Groups[2].Value.ToLower()) { case "mo": case "mon": case "monday": ToWeekday = DayOfWeek.Monday; break; case "tu": case "di": case "tue": case "tuesday": ToWeekday = DayOfWeek.Tuesday; break; case "we": case "mi": case "wed": case "wednesday": ToWeekday = DayOfWeek.Wednesday; break; case "th": case "do": case "thu": case "thursday": ToWeekday = DayOfWeek.Thursday; break; case "fr": case "fri": case "friday": ToWeekday = DayOfWeek.Friday; break; case "sa": case "sat": case "saturday": ToWeekday = DayOfWeek.Saturday; break; case "su": case "so": case "sun": case "sunday": ToWeekday = DayOfWeek.Sunday; break; default: return(false); } #endregion #region Parse hours... HourMin Begin; HourMin End; if (HourMin.TryParse(match.Groups[4].Value, out Begin) && HourMin.TryParse(match.Groups[5].Value, out End)) { OpeningTimes = new OpeningTimes(FromWeekday, ToWeekday, Begin, End); return(true); } #endregion #region ...or parse "closed" else if (match.Groups[3].Value == "closed") { OpeningTimes = OpeningTimes.FromFreeText(Text, IsOpen24Hours: false); return(true); } #endregion return(false); }