我想计算两个日期,时间和秒之间的差异,我知道至少将日期转换为两个Julian数字并减去它是一种有效的方法。 我正在尝试为此实现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
。
我做错了什么?
答案 0 :(得分:0)
您的基本问题是您使用的算法在1AD的开头附近的值为1。朱利安的约会始于公元前4713年。
出于可能无关紧要的目的,(但这会使在线检查变得更加困难)。 Excel擅长比较20世纪初的时间点。如果您确实想要转换为Julian日期,则需要搜索算法。例如:https://gist.github.com/jiffyclub/1294443是python中合适的代码 - 您需要转换为您选择的语言