复活节日期算法
2013年的复活节是3月31日复活节是西方传统的节日,公元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=832.N/19=4余7,A=73.N/4=20余3,Q=204.7A+1=50,50/19=2余12,B=25.11A+4-B=79,79/29=2余21,M=216.N+Q+31-M=113,113/7=16余1,W=17.25-M-W=3由此可知,1983年的复活节日期是4月3日。例2.2008年,中国将在北京举办奥运会,那一年复活节是哪一天呢?1.2008-1900=108,N=1082.N/19=5余13,A=133.N/4=27,Q=274.7A+1=92,92/19=4余16,B=45.11A+4-B=143,143/29=4余27,M=276.N+Q+31-M=139,139/7=19余6,W=67.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日,2008年3月23日,2009年4月12日,2016年4月4日。由于时间关系,我已经计了一百年内的复活节,这是西欧的计法,东欧及俄罗斯不适用。祝大家在以后的复活节快乐!23/3/200817/4/203314/4/20584/4/208312/4/20099/4/203430/3/205926/3/20844/4/201625/3/203518/4/206015/4/208524/4/201113/4/203610/4/206131/3/20868/4/20125/4/203726/3/206220/4/208731/3/201325/4/203815/4/206311/4/208820/4/201610/4/20396/4/20***3/4/20895/4/20151/4/204029/3/206516/4/209027/3/201621/4/204111/4/20668/4/209116/4/20176/4/20423/4/206730/3/20921/4/201829/3/204322/4/206812/4/209321/4/201917/4/204414/4/20694/4/209412/4/20209/4/204530/3/207024/4/20954/4/202125/3/204619/4/207115/4/2096
17/4/202214/4/204710/4/207231/3/20979/4/20235/4/204826/3/207320/4/209831/3/202418/4/204915/4/207412/4/209920/4/202510/4/20507/4/207528/3/21005/4/20262/4/205119/4/207617/4/210128/3/202721/4/205211/4/20779/4/210216/4/20286/4/20533/4/207825/3/21031/4/202929/3/205423/4/207913/4/210421/4/203018/4/20557/4/20805/4/210513/4/20312/4/205630/3/208118/4/210628/3/203222/4/205719/4/208210/4/21071/4/2108