将日期转换为其儒略数

Converting a date to its Julian number

我想计算两个日期、时间和秒之间的差异,我至少知道将日期转换为两个儒略数并相减是一种有效的方法。 我正在尝试为此实现 this 算法。 下面是我今天的实现,即 12-22-2015

function g(y,m,d)
m = (m + 9) % 12
y = y - m/10
return 365*y + y/4 - y/100 + y/400 + (m*306 + 5)/10 + ( d - 1 )

function g(2015,12,22)
[9] m = (12 + 9) % 12
[2014.1] y = 2015 - 9/10

735146.5 + 503.525 + 20.141 + 5.03525 + 275.9 + 21
=**735954.10125**

但是根据 this 在线计算工具,正确的值是:2457378.877.

我做错了什么?

您的根本问题是您使用的算法在 1AD 开始时的值为 1。儒略历从公元前 4713 年开始。

为了您的目的,这可能无关紧要,(但它使在线检查变得更加困难)。 Excel擅长比较20世纪开始后的时间点。如果您真的想转换为 Julian 日期,则需要搜索算法。例如:https://gist.github.com/jiffyclub/1294443 是 python 中的合适代码 - 您需要转换成您选择的语言