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/