ホームページ >バックエンド開発 >C++ >日付の週番号を正確に判断するにはどうすればよいですか?

日付の週番号を正確に判断するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-25 12:12:09742ブラウズ

How to Accurately Determine the Week Number of a Date?

日付の週番号を正確に計算する

日付の週番号の計算は頻繁に行われるプログラミング作業ですが、驚くほど複雑です。 2012 年 12 月 31 日を考えてみましょう。多くのメソッドは誤って 53 を返しますが、直感的にはそれが第 1 週目であるはずです。

問題: カレンダーのバリエーション

核心的な問題は、カレンダーの不一致にあります。 標準の .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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。