百度首页 | 百度空间
 
查看文章
 
复活节日期的算法
2007-04-13 20:19
     复活节是西方传统的节日,公元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年的复活节日期。
    1。    1983-1900=83,                 N=83
    2。    83/19=4余7,                   A=7
    3。    83/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。    108/19=5。。13,        A=13
    3。    108/4=27     Q=27
    4。    7A+1=92,92/19=4。。    B=4
    5。    11A+4-B=143,143/29=。。27,    M=27
    6。    N+Q+31-M=139,139/7=。。6,    W=6
    7。    25-M-W=-8,    31-(-8)=23
所以该年复活节日期是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日

2007年4月8日

2008年3月30日

2009年4月12日

2010年4月4日

        根据西方教会的传统,在春分节(3月21日)当日见到满月或过了春分见到第一个满月之后,遇到的第一个星期日即为复活节。

        东方教会则规定,如果满月恰好出现在这第一个星期日,则复活节再推迟一周。因此,节期大致在3月22日至4月25日之间。

        复活节是在每年春分月圆后的第一个礼拜天。CG分享

类别:默认分类 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu