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 日),不熟悉编号的人也能检查。目标不是把年份改得顺眼,而是确认两份报告统计相同七天。

参考资料

使用工具

指南 →