У меня возникла проблема с элементом управления пользовательского интерфейса формы Windows MonthCalendar. Если свойство ShowWeekNumbers включено, оно показывает, что неделя 1 2016 года — это неделя, содержащая 1 января, то есть пятницу. Это не соответствует стандарту ISO-8601, в котором говорится, что первой неделей года является неделя, содержащая первый четверг года (первая 4-дневная неделя).
Элемент управления MonthCalendar (SysMonthCal32) является частью общей библиотеки элементов управления (comctl32.dll). Он использует стиль MCS_WEEKNUMBERS при отображении номеров недель. На странице «Стили управления месячным календарем» сайта MSDN в описании MSC_WEEKNUMBERS содержится следующее утверждение: «Неделя 1 определяется как первая неделя, содержащая не менее четырех дней». К сожалению, это противоречит тому, что я испытываю с контролем.
Вот фотография элемента управления MonthCalendar, показывающая проблему, описанную выше.