当我在寻找另一个问题的解决方案时,我发现自己在考虑是否可以使用。NET 的 Calendar
类来实现一个不基于地球约定的日历。
例如,火星日比地球上的一天长2.7% :
迄今为止,航天器着陆器项目使用的惯例是使用24小时的“火星时钟”来跟踪当地的太阳时间,其中的小时、分钟和秒比其标准(地球)持续时间长2.7% 。
有没有什么好的方法来实现一个 MarsCalendar
,使一秒钟的长度不同于标准的 GregorianCalendar
,从而能够使用基于它的 DateTime
对象的所有标准的 AddDays()
,AddHours()
等功能?(注意: 理想情况下,一个解决方案-如果存在的话-将适用于任何形式的行星天体,其中有可能定义“1天”和“1年”的一致长度。不过,火星就是一个很好的例子。)