命令“日期 +%W”不返回第 00 週

命令“日期 +%W”不返回第 00 週

日期(1) 的手冊頁顯示:
%W 一年中的週數,星期一為一週的第一天 (00..53)

我假設存在第 00 週,並且我在程序中處理這樣的周,但是一旦我決定測試它,執行
“date -v -28w +%W”會得到 01,而
“date -v -29w +”會產生結果。

是否有可能某一年達到第 00 週,或是這裡發生了什麼事?可能我錯過了一些東西,謝謝。

答案1

一年中第一個星期一之前的任何一天都將是第00 週。 :

$ 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 週。

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

相關內容