Получить неделю года

Delphi Xe, Win 7, System TimeZone UTC + 4: 0, Первый день недели в системе - понедельник, Время синхронизируется с time.windows.com

В палитре Из стандартных компонентов Delphi Win32 есть компонент MonthCalendar, у него свойство WeekNubers = true (отображение номеров недель), date = now, первый день - понедельник.

Показывает 19 число (сегодня) - номер недели 43.

Я запрашиваю номер через dateutils.WeekOfTheYear (сейчас) = возвращает 42.

enter image description here

Источник (0,5 Мб) http: // www. sendpace.com/file/yuz6ko

Судя по исходному коду компонента MonthCalendar - там вроде все верно (даже если не выставлять первый день недели, он принимает значение из системных параметров).

А в запросе WeekOfTheYear сказано, что все считается и применяемым стандартом ISO, но числа не совпадают: (

Никак не пойму, куда пропадает одна неделя - если посмотреть на календарь, должно быть 43, а если учесть, что недели 53 и первое касается прошлого года ...

Кстати WeekOfTheYear на 01.01.2011 тоже возвращает 52, хотя вроде должен вернуть 1 ...

Почему различия и где это правильно?

7
задан kludg 19 October 2011 в 08:16
поделиться