首頁 > 後端開發 > C++ > 如何準確確定日期的周數?

如何準確確定日期的周數?

Susan Sarandon
發布: 2025-01-25 12:12:09
原創
741 人瀏覽過

How to Accurately Determine the Week Number of a Date?

精確計算日期的周數

計算日期的周數是一項常見的編程任務,但非常複雜。考慮 2012 年 12 月 31 日:許多方法錯誤地返回 53,而直觀上,它應該是第 1 週。

問題:日曆變化

核心問題在於日曆不一致。 標準 .NET 日曆允許週跨越年份邊界,這與 ISO 8601 標準不同,ISO 8601 標準將周保留在一年內。

ISO 8601 解決方案

為了確保准確性,使用 ISO 8601 標準至關重要。以下 GetIso8601WeekOfYear 方法符合此標準,可以正確地將 2012-12-31 識別為第 1 週。

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);
}
登入後複製

此方法保證週數計算符合 ISO 8601,提供一致且符合邏輯的結果。

以上是如何準確確定日期的周數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板