Хорошо, я пойду, но это не очень красиво:
public int MonthOfWeek( int week, int year, CalendarWeekRule, weekrule, DayOfWeek firstDayOfWeek)
{
GregorianCalendar gc = new GregorianCalendar();
for( DateTime dt = new DateTime(year, 1, 1); dt.Year == year; dt = dt.AddDays(1))
{
if( gc.GetWeekOfYear( dt, System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday) == week ){
return dt.Month;
}
}
return -1;
}
Это учитывает специфические для культуры правила генерации недель.Если неделя делится на два, она возвращает первый месяц, с которым она столкнулась.
Поэтому в Норвегии я бы назвал это с CalendarWeekRule.FirstFourDayWeek
и DayOfWeek.Monday
для получения правильных результатов.