将日期转换为其儒略数
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 中的合适代码 - 您需要转换成您选择的语言
我想计算两个日期、时间和秒之间的差异,我至少知道将日期转换为两个儒略数并相减是一种有效的方法。 我正在尝试为此实现 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 中的合适代码 - 您需要转换成您选择的语言