(复活节)复活节日期的算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

复活节日期的算法

复活节是西方传统的节日,公元325年尼西亚宗教会议规定,每年过春分月圆后的第一个星期天为复活节。其日期是不固定的,通常是要查看日历才能知道。

现在有一个简便的算法供大家参考!

年份只限于1900年到2099年

NO.1 设要求的那一年是Y年,从Y减去1900,其差记为N。

NO.2 用19作除数去除N,余数记为A。

NO.3 用4作除数去除N,不管余数,把商记为Q。

NO.4 用19去除7A+1,把商记为B,不管余数。

NO.5 用29去除11A+4-B,余数记为M。

NO.6 用7去除N+Q+31-M,余数记为W。

NO.7 计算25-M-W。

得出答数即可定出复活节的日期。若为正数,月份为4月,如为负数,月份为3月。若为0,则为3月31日。

现在我们选两个年份来实例计算一遍。

例1. 1983年的复活节日期。

2. N/19=4余7,A=7

3. N/4=20余3,Q=20

4. 7A+1=50,50/19=2余12,B=2

5. 11A+4-B=79,79/29=2余21,M=21

6. N+Q+31-M=113,113/7=16余1,W=1

7. 25-M-W=3

由此可知,1983年的复活节日期是4月3日。

例2. 2008年,中国将在北京举办奥运会,那一年复活节是哪一天呢?

1. 2008-1900=108,N=108

2. N/19=5余13,A=13

3. N/4=27,Q=27

4. 7A+1=92,92/19=4余16,B=4

5. 11A+4-B=143,143/29=4余27,M=27

6. N+Q+31-M=139,139/7=19余6,W=6

所以该年复活节日期是3月23日。

按照复杂的天文历法分析与计算,最早的复活节日期是3月22日,上一次出现是在1818年,而且要到2285年才会再度出现。最晚的日期是在4月25日,上一次出现是在1943年,要到2038年才会出现。

用MATLAB计算2007年复活节日期,程序如下:

y = 2007;

n = y-1900;

a = mod(n,19);

q = floor(n/4);

b = floor((7*a+1)/19);

m = mod(11*a+4-b,29);

w = mod(n+q+31-m,7);

d = 25-m-w

得到d=8,即2007年4月8日。2006年4月16日,2008年3月23日,2009年4月12日,2010年4月4日,2011年4月24日。

由于时间关系,已经计了一百年内的复活节,这是西欧的计法,东欧及俄罗斯不适用。祝大家在以后的复活节快乐!

相关文档
最新文档