我一直在研究不同操作系统如何表示时间,以及如何在它们之间进行转换。我读过几页,它们都描述了在 FILETIME 和 Unix 时间之间转换的类似方法,最值得注意的是这篇文章。其工作原理背后的逻辑非常简单,并且清楚地表明从
11644473600
到 January 1st, 1601
已经有 January 1st 1970
秒了。
我的问题是:为什么常数是
11644473600
而不是 11644732800
?
当我除掉 11,644,473,600 秒时,等于 134,774 天。这将包括 92 个闰年,结果约为 368.99 年。每次我自己计算数字时,我得出的 369 年(其中包含 92 个闰年)的数字最终是 11,644,732,800 秒(134,777 天)。
我只是做错了一些数学运算,还是还有其他一些我尚未阅读或了解的有关此转换如何工作的信息?
我认为它们来自这样一个事实:并非所有能被 4 整除的年份都是闰年。正如维基百科上所说:
这个额外的闰日发生在每年 4 的整数倍的年份(可被 100 整除的年份除外,但不能被 400 整除的年份)