我正在Lua中编写一个计算日落/日出的应用程序,为此我必须将格里高利日期最初转换为Julian天,然后从那里完成所有复杂的数学运算。
我已经完成了硬数学,但现在我需要将朱利安日期(例如2456495.6833865)转换回格里高利日期,完成时间。我发现只能做到这一点的唯一代码只有日,年和月,但没有提及时间(我认为它表示为当天的一小部分,在这种情况下是小数点后面的数字)< / p>
任何帮助将不胜感激 - 以下网站具有功能,但我找不到任何代码或方法:
http://ssd.jpl.nasa.gov/tc.cgi#top
再次感谢,
FYP。
答案 0 :(得分:7)
This answer显示了从Unix时间戳转换为Julian日期的方法。这就是你在Lua中的表现:
local julian = (os.time() / 86400) + 2440587.5
print(julian)
-- 2456496.1647338
所以这就是你在另一个方向转换的方式:
print( (julian - 2440587.5) * 86400) )
-- 1374508633
然后,您可以使用os.date()
将其转换为日期和时间。