用python计算农历/阴历假日

2024-06-06 11:58:44 发布

您现在位置:Python中文网/ 问答频道 /正文

这里有日历坚果吗?我一直在寻找有关如何计算公历中不规则发生的当前一年的假期的信息。这通常是因为这个节日是基于古老的农历。在

但我没能完成。如果有人有一个现代语言的示例代码来描述他们的计算,我将非常感激。我更喜欢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年有一天休假,这一点得到了this site的证实,尽管它提到的“北美目击事件”对我来说有点模糊。希望能提供提高准确性的建议,比如1月1日是每年的截止日期。伊斯兰教的年头较短,因此每年来得更早。在

纳达:

值得庆幸的是,我找到了一个30美元的this book链接,但我不愿意为几行代码花那么多钱。在关于Amazon的讨论中,它提到这些例程都在Emacs日历中。不过,我从来没有安装过Emacs,所以如果这是唯一可用的代码,希望有人能帮我把它挖出来简化,让我在今年的斋月/中国纽约。在

不确定它在这里是否有用,但是太阳和月亮事件可以通过pyephem获得,我已经在使用它了。也许它也有用。在


Tags: to代码infrom语言dateutilutils
1条回答
网友
1楼 · 发布于 2024-06-06 11:58:44

即使我没有代码给你,我可以提供一些信息,可能会给你一些进展。在

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

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

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

因此,如果你打算无限期地预测过去或未来的节日日期和时间间隔(以秒为单位),那么传统伊斯兰历法的要求将需要与大地水准面上的特定位置相关联。这可能是你提到的关于“北美目击”和未来假日日期错误的原因;如果月相与太阳日的观测是在北美进行的,而不是麦加,日历的计划将大不相同。在

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

PyEphem看起来很酷,我自己去看看。如果它的内置逻辑不能满足你的需要,你就要花相当长的时间来研究如何无限期地预测未来的天体事件。这里有一个味道:http://en.wikipedia.org/wiki/Precession_of_the_equinoxes#Values

同样,我没有任何具体的代码给你,但我希望这些信息不是重复你已经知道的,对你有帮助。在

相关问题 更多 >