这里有任何日历吗?我一直在寻找有关如何计算格里高利历中不规则出现的当年假期的信息.通常会发生这种情况,因为假期是基于较旧的农历.
我用google搜索广告并取得了一些进展但却无法完成.如果有人用现代语言描述他们的计算的示例代码,我将非常感激.我更喜欢python或其中一种C*语言.
我到目前为止的进展:
完成:
关:
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,所以如果它是唯一可用的代码,希望有人可以帮我把它挖出来并简化它来给我今年的Ramadan /中国纽约.
不确定它是否在这里有用,但是太阳和月亮事件可以通过我已经使用的pyephem获得.也许它也可以使用.
即使我没有给您的代码,我也可以提供可能使您取得一些进展的信息。
首先,儒略日期作为计算阴历和阴阳历日期的基础是有意义的,因为它以大地水准面测量的 SI 秒为单位。用于预测这些事件之间的 SI 秒数的公式因此可以很容易地关联起来。 http://en.wikipedia.org/wiki/Julian_day
阴阳节和一般的希伯来历计划取决于月相和太阳工作日的相关性。在希伯来历和伊斯兰历法中,一天从日落开始。因此,如果月亮在日落附近达到 100% 的相位,这可能会影响假期发生的时间以及未来的日历计划。但是日落是什么时候?这不仅取决于经度,还取决于观测的纬度。因此,您必须从大地水准面的特定位置规划阴阳历和假期。 http://en.wikipedia.org/wiki/Jewish_calendar#Principles
这些因素导致使用简化的教会系统,其中有几个在世界上广泛使用,用于复活节日期的“计算”,用于代替直接的天文观测。 http://en.wikipedia.org/wiki/Computus
传统伊斯兰历法的要求是根据包括日落在内的天文观测来定义的,因此如果您打算无限期地预测过去或未来的假期日期和时间间隔(以 SI 秒为单位),则需要将其与大地水准面的特定位置相关联. 这可能是您提到的“北美目击事件”和未来假期日期错误的原因;如果月相与太阳日的观测是在北美进行的,而不是在麦加进行,那么日历的计划就会大不相同。
在预测任何天文昙花一现以及因此的阴历或阴阳历事件中,一个不可避免且不可预测的因素是地球自转随时间的变化。有一个简单的公式可以估算这种变化,但实际值是使用来自极远天体的信号来测量的。 http://en.wikipedia.org/wiki/Leap_second 由于这种不确定性,以及某些日历对月相和太阳星历之间的相关性的敏感性,这些日历在(遥远的?)未来总是有一个地平线, 过去的日期序列是不可知的。
PyEphem 看起来是一个非常酷的包,我会自己检查一下。如果它的内置逻辑不能满足您的需求,您将在很长一段时间内研究如何无限期地预测未来的天体事件。这是一个味道:http : //en.wikipedia.org/wiki/Precession_of_the_equinoxes#Values
同样,我没有任何特定的代码供您使用,但我希望这些信息不会重复您已经知道的内容并且对您有所帮助。