linux - 直到 9999 年,Linux cal 命令是否正确?

标签 linux calendar

cal 命令显然是这样检查闰年的:

if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) then leapyear=true

我的问题是,从现在到 9999 年(此命令的有效年份范围)是否还有未包含在此定义中的其他闰年。如果是,这些是否也包含在 cal 命令中?

最佳答案

不是公历规则,所以 cal 是该日历的正确实现。

不过,公历是否会一直使用到 9999 年,还有人猜测。我的猜测是它不会保持不变,因为它的不精确性在几千年后成为一个值得注意的因素。

目前,热带(自然)年大约有 365.2422* 天长(随着地球自转减慢,它会随着时间的推移而变长,但速度很慢)。公历的 4-but-not-100-except-400 意味着公历年平均有 365.2425 天。这是一个不错的近似值,但它意味着在地球历史的这一点上,大约每 3236+ 年损失一天。

当人们确定这是一个问题并插入另一个闰日(或完全更改规则)时 cal 的实现者可能无法预测,因此他们坚持规则公历。

*平均。由于来自其他行星的引力,它略有不同。

+ 我查了一下。当然,该数字也存在一些差异。

关于linux - 直到 9999 年,Linux cal 命令是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28341181/

相关文章:

c - OpenCL。数组寻址/指针的奇怪错误

linux - awk -F 不在 solaris 中搜索完整字符串

linux - 检测操作系统架构并根据结果选择 file-x32 或 file-x64 的脚本

android - 以毫秒为单位的时间警报

python - 一个flask网站,当它删除一个文件(os.remove ("abc.txt"))时,该文件被删除但空间没有被回收

Linux 内核 'Reserved' 内存

java - 从日历中获取日期

javascript - 将 angular-bootstrap-calendar 安装到 Ionic App 中时出现问题

javascript - jquery 日历插件不起作用

java - 将一个日历实例分配给另一个实例的问题