InterImm / InterImmBook

:seedling: The Book of Interplanetary Civilization;星际移民之书.

Home Page:http://book.interimm.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

需要火星历与地球日期的换算程序

emptymalei opened this issue · comments

commented

讨论转移到 https://github.com/InterImm/marsCalendar 新的 repo 中。


火星历

需要一个 js 程序,放在网页中,用于换算。或者就是一个简单的 iPython Notebook,写好文档,等等。

可能有用的参考,其中有两个现成的:

  1. http://jtauber.github.io/mars-clock/ or http://github.com/jtauber/mars-clock/
  2. http://www-mars.lmd.jussieu.fr/mars/time/martian_time.html
  3. http://www.giss.nasa.gov/tools/mars24/ or http://www.giss.nasa.gov/research/briefs/allison_02/
  4. 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 历

http://scienceworld.wolfram.com/astronomy/JulianDate.html

@emptymalei
我想到一个问题,火星与地球的距离时刻在变化,大概是几光分到十几光分,这样的话换算出来的时间到底是什么时候的时间??需要考虑对钟么?

commented

@SpaceXploration 我们的对时是在一个太阳系静止参考系的时间。这样就不用考虑光的问题了。

commented

我看了pyMarsTime那个,就是现成的程序,不需要做任何改动。

不过我们不需要这么复杂的,可以写一个简化版的。

闰年的函数我给了,剩下一个非常简单的事情就是计算我们地球日历的julian 天数,用这个来和火星的类似对应起来,也可以算,基本上几行程序。思路就是这样。周末我看看写出来。我还可以写一个mathematica 版的。

虽然我不怎么会写 js,但我觉得 js 也就是几行程序。再想想看。

commented

想了想,还是开一个单独的 repo

@emptymalei 我也在想写来着,不知道怎么能做成互动的。iPython Notebook不能在线运行吧,js应该是可以,不过完全没用过。

嗯,从长远看,我们还是需要有交互式网页,一些小计算器转换器之类的。

commented

@styra 嗯,感觉那些就后面考虑吧。我倒是学过 js,不过如果程序比较复杂我估计比较困难。比较好的方法是,我们就把函数/算法写出来,然后看看谁比较熟悉 js 就找其翻译过去就好了。

  1. 计算地球时间当前 julian date, 就知道多少天数了
  2. 计算火星元年第一天对应的 julian date 的天数
  3. 计算从火星元年到要换算的日期的 julian date 天数
  4. 把这些天数换算成火星天
  5. 计算这些火星日对应多少火星年、月(需要利用上面的 is_leap_year() 函数)

这里忽略了日出日落/一天开始的问题,先这样吧,主要是为了后面写 js 方便。如果是要真的完整的计算日期以及时间的对应,就直接用那个 pyMarsTime 吧。

commented

https://github.com/jtauber/mars-clock/

这个是 js 版本的,估计就直接改一下关键的数字就可以了。不过需要自己看他的代码看看是不是跟我们定的一致。

commented

建立了新的 repo

https://github.com/InterImm/marsCalendar

后续讨论在新仓库进行。此处关闭。