SheepDev

日期、時間與排程

一月為何屬於上一年的第 53 週?

使用工具

新年週報顯示 2020-W53 看似忘記更新,但對 2021 年 1 月 1 日,這是正確的 ISO 週編號。日曆年與週所屬年份在年末年初可能不同。查看週起迄日期,避免把同一週拆進兩份報告。

輸入 1 月 1 日,查看所在週的兩端

日期轉週編號輸入
2021-01-01

選擇日期轉週模式。週所屬年為 2020、第 53 週,起於 2020-12-28,止於 2021-01-03。輸入日期未被改寫,只是該日曆日期屬於標記為 2020-W53 的七天。

再輸入 2021-01-04,會進入 2021 年第 1 週。應一起檢查附近的週一。把 12 月 28 日至 1 月 3 日報告命名為 2021-W53,會混用年份與週號。請成組核對。

第 1 週不一定包含 1 月 1 日

ISO 週從週一到週日,第 1 週包含當年第一個週四,也就是包含 1 月 4 日的週。這避免新年處產生短週。若週四在上一年,即使週五為 1 月 1 日,仍歸上一年。

反向情況也存在:2018-12-31 屬於 2019 年第 1 週。只修正一月歸上年的特殊情況,會漏掉十二月歸下年。應直接組合結果中的週所屬年與週號。

不是每年都有第 53 週

週編號轉日期區間輸入
2020-W53

反向輸入 2020-W53,可得 12 月 28 日至次年 1 月 3 日;2021-W53 則不存在,應報錯。別機械遞增週號或照搬上一年版面,也別把無效週自動順延到下一年。

收到外部週標記時,要把反向得到的起迄日期與對方預期核對。週日開始的業務週可能同號不同日期。工具給出 ISO 結果,不推斷會計年度或結算截止日。

先確定日期,再給時間戳分週

同一時點的兩個當地日期
2021-01-03T15:30:00Z
2021-01-04T00:30:00+09:00

兩者是同一時點,UTC 為週日,日本為週一。按 UTC 日期得 2020-W53,按日本日期得 2021-W01。週工具接收日期,因此應先選報告時區、轉換時間戳,再求週號。

結束日期為週日,不代表時間篩選應截止週日零點,否則會漏掉當天大部分。日期區間不同於時間條件。檢查業務是否採用當地本週起點包含、下週起點不包含;工具不執行查詢或驗證筆數。

用一組年末年初日期驗證週報

可獨立核對的預期值
2018-12-31 → 2019-W01
2020-12-28 → 2020-W53
2021-01-01 → 2020-W53
2021-01-03 → 2020-W53
2021-01-04 → 2021-W01

別只用一個普通日期驗收。一起檢查年末、元旦、週日和下一週一,再由週號反查範圍,確認原日期在其中,以發現週號正確但邊界錯一天的問題。

分享時附上日期,如 ISO 2020-W53(12 月 28 日至 1 月 3 日),不熟悉編號的人也能檢查。目標不是把年份改得順眼,而是確認兩份報告統計相同七天。

參考資料

使用工具

指南 →