【发布时间】:2015-12-22 09:10:57
【问题描述】:
我想计算两个日期、时间和秒之间的差异,我知道至少将日期转换为两个儒略数并减去它是一种有效的方法。 我正在尝试为此实现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。
我做错了什么?
【问题讨论】:
-
这段代码看起来不像 C++。你用javascript实现了吗?请注意,您的链接显示“所有除法都是整数除法”,因此 y = 2015 - 9/10 应该是 2015,而不是 2014.1。
-
我没有复制代码,只是复制了计算步骤。如果我们将 2014.1 四舍五入,为什么 2015 年应该是 2014 年?
-
没有。计算需要进行 2015 - 9/10 => 2015 - 0 => 2015。除法 9/10 向零舍入。
标签: c++ date julian-date