Delphi Xe、Win 7、System TimeZone UTC + 4:0、システムの最初の曜日-月曜日、時刻はtime.windows.comと同期されます
標準コンポーネントDelphiWin32のパレットには、コンポーネントMonthCalendarがあり、そのプロパティWeekNubers = true(週数の表示)、date = now、最初の日-月曜日です。
19番号(今日)-第43週の番号に表示されます。
dateutils.WeekOfTheYear(now)=42を返すことで番号をリクエストします。
ソース(0.5 Mb)http://www.sendspace.com/file/yuz6ko
コンポーネントMonthCalendarの初期コードから判断すると、すべてが真実であるように見えます(週の最初の日を公開しなくても、システムパラメーターから値を取得します)。
そして、WeekOfTheYearの問い合わせでは、すべてが標準ISOが適用されていると見なされていると言われていますが、数字は一致していません:(
いずれにせよ、1週間が消える場所はわかりません。カレンダーを見ると、43であるはずです。考慮すると、その53週と、昨年の最初の懸念事項です...
ちなみに、2011年1月1日のWeekOfTheYearも52を返しますが、1を返す必要があります...
なぜ区別し、どこが正しいのですか?