犹太逾越节是为了庆祝《圣经》中的事件,在犹太人在埃及被俘期间,上帝杀死了埃及所有人和牲畜的第一个孩子,除了那些在门柱上标记着春天羔羊的血的房屋外,这些房屋都是经过的;结果,犹太人得以逃脱埃及的奴役。
逾越节是在春分后的第一个满月的日子庆祝的,但要做一些调整。英国数学家约翰·霍顿·康韦给出了计算逾越节日期的算法:
首先,计算犹太新年Rosh Hashanah的日期。在格里高利年年普通时代的罗斯·哈萨纳于9月n个,其中:
g=余数(y/19)+1
n+分数=
(楼层(y/100)-楼层(y/400)-2)
+765433/492480×剩余量(12g/19)
+余数(y/4)/4
-(313y+89081)/98496
计算n个须遵守以下延期规则:
- 如果上面计算的日期是星期日、星期三或星期五,则Rosh Hashanah将出现在第二天(即分别为星期一、星期四或星期六)。
- 如果上面计算的日期是星期一,并且分数大于或等于23269/25920,并且如果
剩余物(12g/19)
大于11,Rosh Hashanah在第二天,即星期二跌倒。
- 如果上面计算的日期是星期二,并且分数大于或等于1367/2160,并且如果
剩余物(12g/19)
大于11,Rosh Hashanah于两天后,即周四坠落。
给定Rosh Hashanah的日期,同一日历年的逾越节日期计算如下米3月21日之后的第天,其中米如果Rosh Hashanah在9月,则为Rosh Hazanah所在的9月日;如果Rosh Hashanah位于10月,则30加上Rosh Hasanah所在的10月日。
根据犹太习俗,这个节日实际上是在上面计算的前一天日落时开始的。
您的任务是编写函数,计算任何给定日历年的Rosh Hashanah和Passover日期。完成后,欢迎您阅读或运行建议的解决方案,或在下面的评论中发布自己的解决方案或讨论练习。
页:1 2