問題: カレンダーのバリエーション
核心的な問題は、カレンダーの不一致にあります。 標準の .NET カレンダーでは、1 年の範囲内で週を保持する ISO 8601 標準とは異なり、週が年の境界を越えることができます。
ISO 8601 ソリューション
精度を確保するには、ISO 8601 標準の使用が不可欠です。この標準に準拠した次の メソッドは、2012 年 12 月 31 日を第 1 週として正しく識別します。GetIso8601WeekOfYear
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); }
以上が日付の週番号を正確に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。