internal override string GetValueStringForNonGregorianCalendars(Windows.Globalization.Calendar calendar) { var valueString = string.Format("{0}:{1}", calendar.HourAsPaddedString(2), calendar.MinuteAsPaddedString(2)); if (calendar.GetClock() == Windows.Globalization.ClockIdentifiers.TwelveHour) { valueString = string.Format("{0}{1}", valueString, calendar.PeriodAsString()); } return(valueString); }
/// <summary> /// Gets zero based calendar hour. /// </summary> /// <returns> /// Calendar hour. If the calendar clock is 12 hour and the /// hour value is 12, then this method will return 0. /// </returns> internal static int ZeroBasedHour(this Windows.Globalization.Calendar calendar) { if (calendar.GetClock() == ClockIdentifiers.TwentyFourHour) { return(calendar.Hour); } else { return(calendar.Hour == 12 ? 0 : calendar.Hour); } }
/// <summary> /// Sets zero based calendar hour. /// </summary> internal static void SetZeroBasedHour(this Windows.Globalization.Calendar calendar, int hour) { if (calendar.GetClock() == ClockIdentifiers.TwentyFourHour) { if (hour < 0 || hour > 23) { throw new ArgumentException("Hour should be between 0 and 23."); } calendar.AddHours(hour - calendar.Hour); } else { if (hour < 0 || hour > 11) { throw new ArgumentException("Hour should be between 0 and 11."); } var calendarHour = calendar.Hour == 12 ? 0 : calendar.Hour; calendar.AddHours(hour - calendarHour); } }