/// <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);
}
}