以下の疑似コードが週番号として 2 を返すのはなぜですか? 1でいいんじゃない?
string x = cal.GetWeekOfYear(02.01.2012 as datetime, cultureInfo.currentculture.DateTimeFormat.CalendarWeekRule, CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek).toString();
以下の疑似コードが週番号として 2 を返すのはなぜですか? 1でいいんじゃない?
string x = cal.GetWeekOfYear(02.01.2012 as datetime, cultureInfo.currentculture.DateTimeFormat.CalendarWeekRule, CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek).toString();
現在のカルチャのCalendarWeekRuleFirstDay
はであり、次のように定義されています (私の強調):
年の最初の週が年の最初の日に始まり、次の指定された週の最初の曜日の前に終わることを示します。
また、週の最初の日は月曜日だと言います。
2012 年 1 月 1 日は日曜日で、最初の週はその日から始まります。週の最初の日は月曜日なので、最初の週は次の月曜日の前、つまり日曜日に終了します。
したがって、2012 年 1 月 2 日は実際に、あなたのカルチャの設定では第 2 週の最初の日です。