問題: カレンダーのバリエーション
核心的な問題は、カレンダーの不一致にあります。 標準の .NET カレンダーでは、1 年の範囲内で週を保持する ISO 8601 標準とは異なり、週が年の境界を越えることができます。
ISO 8601 ソリューション
精度を確保するには、ISO 8601 標準の使用が不可欠です。この標準に準拠した次の メソッドは、2012 年 12 月 31 日を第 1 週として正しく識別します。GetIso8601WeekOfYear
<code class="language-csharp">public static int GetIso8601WeekOfYear(DateTime time) { DayOfWeek day = CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(time); if (day >= DayOfWeek.Monday && day <= DayOfWeek.Wednesday) { time = time.AddDays(3); } return CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(time, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); }</code>この方法では、ISO 8601 に準拠した週番号の計算が保証され、一貫性のある論理的な結果が得られます。
以上が日付の週番号を正確に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。