ホームページ > バックエンド開発 > C++ > ISO 8601 を使用して C# で週番号から日付を計算する方法

ISO 8601 を使用して C# で週番号から日付を計算する方法

Linda Hamilton
リリース: 2025-01-14 13:12:43
オリジナル
722 人が閲覧しました

How to Calculate a Date from a Week Number in C# Using ISO 8601?

週番号に基づいて日付を計算します

多くのプログラミング タスクでは、指定された週番号に基づいて対応する日付を計算する必要があります。 C# では、これは ISO 8601 標準を使用して実現できます。

ISO 8601 標準は、月曜日ではなく、毎年第 1 木曜日に第 1 週を開始します。この規則を利用して、次のコードは、指定された年の特定の週の最初の日を正確に決定します。

<code class="language-csharp">public static DateTime FirstDateOfWeekISO8601(int year, int weekOfYear)
{
    DateTime jan1 = new DateTime(year, 1, 1);
    int daysOffset = DayOfWeek.Thursday - jan1.DayOfWeek;

    DateTime firstThursday = jan1.AddDays(daysOffset);
    var cal = CultureInfo.CurrentCulture.Calendar;
    int firstWeek = cal.GetWeekOfYear(firstThursday, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);

    var weekNum = weekOfYear;
    if (firstWeek == 1)
    {
        weekNum -= 1;
    }

    var result = firstThursday.AddDays(weekNum * 7);
    return result.AddDays(-3);
}</code>
ログイン後にコピー
このコードは、第 1 木曜日が年の第 1 週ではない場合を解決します。最初の木曜日から 3 日を減算すると、ISO 8601 標準に従って、指定された週の最初の日として月曜日が正しく返されます。

以上がISO 8601 を使用して C# で週番号から日付を計算する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート