public override int GetWeekOfYear(DateTime time, CalendarWeekRule rule, DayOfWeek firstDayOfWeek)
{
if ((int)firstDayOfWeek < 0 || (int)firstDayOfWeek > 6) {
throw new ArgumentOutOfRangeException(
"firstDayOfWeek", String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("ArgumentOutOfRange_Range"),
DayOfWeek.Sunday, DayOfWeek.Saturday));
}
switch (rule) {
case CalendarWeekRule.FirstDay:
return (GetFirstDayWeekOfYear(time, (int)firstDayOfWeek));
case CalendarWeekRule.FirstFullWeek:
return (InternalGetWeekOfYearFullDays(this, time, (int)firstDayOfWeek, 7, 365));
case CalendarWeekRule.FirstFourDayWeek:
return (InternalGetWeekOfYearFullDays(this, time, (int)firstDayOfWeek, 4, 365));
}
throw new ArgumentOutOfRangeException(
"rule", String.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("ArgumentOutOfRange_Range"),
CalendarWeekRule.FirstDay, CalendarWeekRule.FirstFourDayWeek));
}