计算蟒蛇的月球/阴历假期

任何日历坚果在这里? 我一直在寻找有关如何计算在格里历中不规则地发生的当年假期的信息。 通常情况下会发生这种情况,因为假期是基于较旧的阴历。

我已经使用了广告的恶作剧并取得了一些进展,但无法完成。 如果任何人有用现代语言描述他们的计算的示例代码,我会非常感激。 我更喜欢Python或其中一种C *语言。

迄今我的进展:

完成:

  • 复活节:可以用python-dateutil找到。
  • 光明节和其他希伯来日历假日可以使用python date_util * s *中的holiday.py来找到。
  • 关:

  • 斋月:date_utils在模块中有一个伊斯兰日历功能,我试过并得到大部分正确的结果,但不是完全准确的结果。 (它想把所有东西都转换成朱利安日期,我不知道为什么)。
  • 
        import calendar_util as cu        # from date utils; no jokes from .br
        #
        # year = int(sys.argv1) or datetime.now().year
        tj = cu.gregorian_to_jd(year, 1, 1)   # this year in julian
        ti = cu.jd_to_islamic(tj)             # this year in islamic cal
        rj = cu.islamic_to_jd(ti[0], 9, 1)    # first day of ramadan in julian
        #
        print cu.jd_to_gregorian(rj)          # first day of ramadan in greg
        # output: (2011, 8, 1)                # correct
    

    本网站确认,我在2014年,2016年获得了一天的结果,但它提到“北美的目击”对我的口味有点模糊。 希望能够提高指针的准确性,例如1月1日打印某年的截止日期。 伊斯兰教年份较短,因此每年较早到达。

    纳达:

  • 中国新年:除了这个讨论没有发现答案之外,我还没有发现任何东西。
  • 为了达到SO的功劳,我已经找到了一本30美元的书的链接,但是宁可不付钱,也不愿为几行代码挖这么多。 在关于亚马逊的讨论中,它提到这些例程都在Emacs日历中。 但是我从来没有安装Emacs,所以如果它是唯一可用的代码,希望有人可以帮我挖掘它,并简化它,给我今年的斋月/中国纽约。

    不知道它在这里是否有用,但日月事件可以通过我已经使用的pyephem获得。 也许它也可以使用。


    即使我没有代码给你,我也可以提供可能会让你有所进步的信息。

    首先,Julian Date作为计算月球和月球日期的基础是有意义的,因为它以大地水准面测量的SI秒为单位。 预测这些事件之间的SI秒数的公式因此可以容易地相关。 http://en.wikipedia.org/wiki/Julian_day

    Lunisolar节日和总体规划希伯来日历取决于月相和太阳周日的相关性。 在希伯来和伊斯兰历法中,这一天始于日落。 因此,如果月球在日落附近达到100%相位,那么会影响假期的发生时间以及日历如何计划到未来。 但是什么时候是日落? 这不仅取决于经度,还取决于观察的纬度。 因此,您必须从大地水准面上的特定位置计划阴历日历和假日。 http://en.wikipedia.org/wiki/Jewish_calendar#Principles

    这些因素导致使用简化的教会体系,其中有几种在世界范围内被广泛使用,用于复活节日期的“计算”,而不是直接的天文观测。 http://en.wikipedia.org/wiki/Computus

    因此,如果您打算预测假日日期和SI秒内的时间间隔,无限期地预测过去或未来,那么传统的伊斯兰日历的要求将根据包括日落在内的天文观测来定义,因此需要与大地水准面上的特定位置相关联。 这可能是“北美人目击事件”的评论以及你提到的未来假日期间的错误的原因; 如果在北美观察月相和太阳日,而不是说麦加,日历的计划将大不相同。

    预测任何天文ep历,因此是月球或日历日历事件的一个不可避免和不可预测的因素是地球自转随时间的变化。 估计这种变化有一个简单的公式,但是实际的测量是使用来自极其远处的天体的信号来测量的。 http://en.wikipedia.org/wiki/Leap_second由于这种不确定性,以及某些日历对月相和太阳星历之间的相关性的敏感性,这些日历在(遥远的)未来总有一个地平线,过去的日期序列是不可知的。

    PyEphem看起来像一个非常酷的包,我会自己检查一下。 如果它的内置逻辑不能满足你的需求,那么你一直在研究如何在未来无限期地预测天体事件。 这是一种品味:http://en.wikipedia.org/wiki/Precession_of_the_equinoxes#Values

    再次,我没有任何特定的代码给你,但我希望这些信息不会重复你已经知道的内容,对你有帮助。

    链接地址: http://www.djcxy.com/p/53327.html

    上一篇: Calculating lunar/lunisolar holidays in python

    下一篇: Force redundant name qualifier for static methods in Resharper