同様の投稿を検索しましたが、この質問に答えるものはないようです。
timeanddate.com Web サイトによると、2005 年 1 月 1 日と 2008 年 12 月 28 日の日付の場合、正しいと仮定すると、週番号は1 になります。
2005 年 1 月 1 日および2008 年 12 月 28 日
問題は、私が持っている C# コードが01/01/2005の正しい週番号の結果を生成しますが、 12/28/2008の間違った結果を生成し、1 ではなく 53 を返すことです:
CultureInfo clUS = new CultureInfo( "en-US", false );
int wkNm = clUS.Calendar.GetWeekOfYear(
new DateTime( 2005, 1, 1, clUS.Calendar ),
clUS.DateTimeFormat.CalendarWeekRule,
clUS.DateTimeFormat.FirstDayOfWeek
); // returns 1
wkNm = clUS.Calendar.GetWeekOfYear(
new DateTime( 2008, 12, 28, clUS.Calendar ),
clUS.DateTimeFormat.CalendarWeekRule,
clUS.DateTimeFormat.FirstDayOfWeek
); // returns 53
CalendarWeekRule
とについてFirstDayOfWeek
は、en-US カルチャの既定のオプションを使用しています。