我需要计算两个日期之间的天数差异。使用 date 命令,我们可以将日期转换为秒,然后计算天数差异。\n例如:
\n$ echo $((($(date +%s --date "2023-10-21")-$(date +%s --date "1899-12-29"))/(3600*24)))\n 45220\nRun 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\nRun Code Online (Sandbox Code Playgroud)\n另一方面,DATE 命令可以使用负日期进行操作:
\n$ date --date="3000 years ago"\nMon Nov 24 13:12:27 LMT -977\nRun Code Online (Sandbox Code Playgroud)\n别的。据我所知,消极日期和积极日期有一些差异。
\n对于正日期,一年从 1 月 1 日开始。但对于负日期,一年从 12 月 31 日开始:
第一年:...-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 …