小编Jun*_*ngo的帖子

是否可以在 DATE 命令中指定负日期,即基督诞生之前的日期?

我需要计算两个日期之间的天数差异。使用 date 命令,我们可以将日期转换为秒,然后计算天数差异。\n例如:

\n
$ echo $((($(date +%s --date "2023-10-21")-$(date +%s --date "1899-12-29"))/(3600*24)))\n  45220\n
Run Code Online (Sandbox Code Playgroud)\n

当第一次约会是积极的时候,一切都很好。当第一个日期为负数时,它不起作用。例如:

\n
$ echo $((($( date +%s --date "-2022-05-10")-$(date +%s --date "1899-12-29"))/(3600*24)))\ndate: invalid date \'-2022-05-10\'\n25570\n
Run Code Online (Sandbox Code Playgroud)\n

另一方面,DATE 命令可以使用负日期进行操作:

\n
$ date --date="3000 years ago"\nMon Nov 24 13:12:27 LMT -977\n
Run Code Online (Sandbox Code Playgroud)\n

别的。据我所知,消极日期和积极日期有一些差异。
\n对于正日期,一年从 1 月 1 日开始。但对于负日期,一年从 12 月 31 日开始:

\n

第一年:...-29.12.01 -30.12.01 -31.12.01 [0000] +01.01.01 +02.01.01 +03.00.01... :第一年 +

\n

关于解决方案。

\n

这是从零日期计算Libreoffice Calc的数字日期值所必需的。Libreoffice 中的零日期是1899-12-30。但是您必须从该日期倒数一天才能得到正确的解决方案,截至日期1899-12-29。发生这种情况是因为由于各种原因一天中的秒数并不恒定。例如从零日期1899-12-30 …

command-line date

6
推荐指数
1
解决办法
252
查看次数

标签 统计

command-line ×1

date ×1