数字艺术研究 QQ:87951002 『国外论坛群发工具Forum Poster 2.9 破解』
查看文章 |
复活节日期的算法
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分享 |
最近读者: