命令“date +%W”不返回第 00 周

命令“date +%W”不返回第 00 周

日期(1)的手册页显示:
%W 一年中的周数,星期一为第一天(00..53)

我假设存在一个周数 00,并且我在我的程序中处理这样的周,但是一旦我决定测试它,执行
“date -v -28w + %W”的结果为 01,而
“date -v -29w + %W”的结果为 52。

是否有可能在某一年得到第 00 周,或者这里发生了什么?可能我遗漏了一些东西,谢谢。

答案1

一年中第一个星期一之前的任何一天都是第 00 周。以 2020 年 1 月 1 日为例,那天是星期三(2020 年的第一个星期一直到 1 月 6 日才到来):

$ date -d "2020-01-01" +%W
00
$ date -d "2020-01-02" +%W
00
$ date -d "2020-01-03" +%W
00
$ date -d "2020-01-04" +%W
00
$ date -d "2020-01-05" +%W
00
$ date -d "2020-01-06" +%W
01

同样,对于以周一开始的年份,12 月会有一些天属于第 53 周。2018 年就是这样的一年:

$ date -d "2018-12-31" +%W
53

相关内容