需要火星历与地球日期的换算程序
emptymalei opened this issue · comments
讨论转移到 https://github.com/InterImm/marsCalendar 新的 repo 中。
火星历
需要一个 js 程序,放在网页中,用于换算。或者就是一个简单的 iPython Notebook,写好文档,等等。
可能有用的参考,其中有两个现成的:
- http://jtauber.github.io/mars-clock/ or http://github.com/jtauber/mars-clock/
- http://www-mars.lmd.jussieu.fr/mars/time/martian_time.html
- http://www.giss.nasa.gov/tools/mars24/ or http://www.giss.nasa.gov/research/briefs/allison_02/
- http://marstime.readthedocs.org/en/latest/ or https://github.com/ashima/pyMarsTime/
计算闰年还算比较方便,大概也就类似这样吧:
# will return True if a year is a leap year on Mars
def is_leap_year(year):
if year % 3000 == 0:
return False
elif year % 1000 == 0:
return True
elif year % 100 == 0:
return False
elif (year % 2 == 0) and (year % 10 == 0):
return True
else:
return False
需要一个单独的 repo 吧?
补充:
G 历换算到 J 历
@emptymalei
我想到一个问题,火星与地球的距离时刻在变化,大概是几光分到十几光分,这样的话换算出来的时间到底是什么时候的时间??需要考虑对钟么?
@SpaceXploration 我们的对时是在一个太阳系静止参考系的时间。这样就不用考虑光的问题了。
我看了pyMarsTime那个,就是现成的程序,不需要做任何改动。
不过我们不需要这么复杂的,可以写一个简化版的。
闰年的函数我给了,剩下一个非常简单的事情就是计算我们地球日历的julian 天数,用这个来和火星的类似对应起来,也可以算,基本上几行程序。思路就是这样。周末我看看写出来。我还可以写一个mathematica 版的。
虽然我不怎么会写 js,但我觉得 js 也就是几行程序。再想想看。
想了想,还是开一个单独的 repo
@emptymalei 我也在想写来着,不知道怎么能做成互动的。iPython Notebook不能在线运行吧,js应该是可以,不过完全没用过。
嗯,从长远看,我们还是需要有交互式网页,一些小计算器转换器之类的。
@styra 嗯,感觉那些就后面考虑吧。我倒是学过 js,不过如果程序比较复杂我估计比较困难。比较好的方法是,我们就把函数/算法写出来,然后看看谁比较熟悉 js 就找其翻译过去就好了。
- 计算地球时间当前 julian date, 就知道多少天数了
- 计算火星元年第一天对应的 julian date 的天数
- 计算从火星元年到要换算的日期的 julian date 天数
- 把这些天数换算成火星天
- 计算这些火星日对应多少火星年、月(需要利用上面的 is_leap_year() 函数)
这里忽略了日出日落/一天开始的问题,先这样吧,主要是为了后面写 js 方便。如果是要真的完整的计算日期以及时间的对应,就直接用那个 pyMarsTime 吧。
https://github.com/jtauber/mars-clock/
这个是 js 版本的,估计就直接改一下关键的数字就可以了。不过需要自己看他的代码看看是不是跟我们定的一致。