复活节的计算

一个来自瑞典的表，用来计算1140年至1671年的复活节日期
复活节的计算（computus，本词即「计算」之意），是指对基督教重要节日复活节的日期算定方式，拉丁语全名为「computus paschalis」，东正教会则以「paschalion」称之。其规则是复活节定于春分后第一次满月之后的第一个星期日：这里所说的「春分」是以3月21日作为固定近似值；而「第一次满月」的日期并不完全依照实际天文现象、也不完全依照历法，而是由教会使用特定数学公式推算。此使复活节成为教会年历中的「moveable feast」，而有别于圣诞节等每年日期不变的「固定庆日」p=123。
基督教发展初期，各地教会对复活节的日期已有争议，但大致依希伯来历以犹太人的逾越节推算；为了解决此争议，同时摆脱对希伯来历的依赖，西历325年召开的第一次尼西亚公会议决定另采机制来计算复活节的日期p=xxxvi。这套算法之所以如此复杂，是因为教会希望将复活节的日期与逾越节相连结——基督徒相信，耶稣正是在逾越节期间受难死亡并在三日后复活的。
由于历史上数次的教会分裂，实际上复活节日期的计算，会随着基督教各宗派采用的历法而有所不同，东方教会主要依儒略历、西方教会则主要依格里历。格里历的出现，便是因为采用儒略历计算的春分日期愈来愈偏离3月21日，导致复活节的计算出现问题而改革制定的。

**历史**
复活节定于何日的问题，自2世纪的初期教会就已出现。当时有两个纪念耶稣复活的日期：以小亚细亚教会为主的东方教会，遵循耶稣的使徒的遗传，在犹太人的逾越节、即希伯来历尼散月十四日，纪念耶稣的受难和复活，表明逾越节羔羊预表耶稣（哥林多前书5:7）。至于以罗马教会为代表的西方教会，就在逾越节后的星期日纪念耶稣的复活。这项分歧引致教会间很大纷争。
后来在325年召开的第一次尼西亚公会议上，教会决定不按希伯来历法，而按照春分月圆，自行计算出复活节日期（但是所谓「春分」是固定于西历3月21日）。此后教会为了定出从西历计算月亮周期的方法，不依赖于天文观察，各地先后提出多种方法，历时数个世纪，才定出各地教会共用的计算表册和方法。即使以天主教会为首的西方教会陆续改采格里历，大部分东方教会续用儒略历，复活节的日期仍然不完全依照历法制定。pp=xviii–xx 

**理论**
由于希伯来历是阴阳合历，教会舍弃依从希伯来历的传统时，便造出自己的阴历取代。每29或30日合为一个阴历月（如果包含2月29日则有31日），在3月结束的阴历月有30日，在4月结束者有29日，如此长短相间。12个阴历月比阳历年短11日，两者的差距称为闰余（epact），阳历日期加上闰余得出阴历月的日期。闰余每年增加11日，达到30日或以上则减去30，设一个30日的闰月。每19年的默冬周期应刚好等于235个阴历月，闰余应以19年为一周期，但是19年的闰余累积为29日，于是在儒略历中将最后一年7月1日开始的阴历月由本来30日减去1日，又在19年中加入7个各30日的闰月，分别开始于在第2年12月3日，第5年9月2日，第8年3月6日，第10年12月4日，第13年11月2日，第16年8月2日，第19年3月5日。一年在默冬周期中的位置称为黄金数，算式是年份除以19的余数加1。阴历月第14日定为形式上的望日。望日在3月21日或之后的第一个阴历月是复活节月，复活节是此阴历月第14日之后第一个周日。

**表列法**

**格里历**
由于1582年格里历改革主要原因，在于当时的复活节计算法已远离真正的春分和满月，在推出新历法时也推行了新的复活节计算法。将全年365日列出，再用递减的罗马数字标记各日，1月1日标记为「*」（0或30），1月2日为「xxix」（29），直到「i」，然后再重复至年末，但每偶数周期只有29日，需将标记为「xxv」的日子也标为「xxiv」。最后每个30日周期中将标记为「xxv」的日子加上标记「25」，每个29日周期中将标为「xxvi」的日子加上标记「25」。然后用「A」至「G」为每日标记，一年第一个周日的字母是这年的主日字母，例如如果1月5日是星期日，这年的主日字母是「E」，但是闰年有两个主日字母，第一个是1至2月，第二个（提前一字母）是3月以后。每个阴历月的朔日是和闰余相同的罗马数字日子。然而，由于默冬周期中，相隔11年的两个年份闰余相差1日，如果这两年闰余分别是24和25，那么这两年的朔日都会一样，显得不太优美，因此黄金数大于11而闰余是25的年份，朔日改在标记为「25」的日子。格里历每400年减去3个闰年，但是为免影响默冬周期，因此这三年将闰余减1以修正（solar equation，equation按古代意思解作修正差异）；不过，19个未改正的儒略年比235个朔望月略长，每310年差距累积到一日，故此每2500（格里）年中，须8次将闰余加1以修正（lunar equation），修正在世纪年进行，每两次修正相隔300年，但每8次修正后隔400年再开始，第一次在1800年，下一次在2100年。这两种修正有时互相抵消，如1800年和2100年即是。格里历改革后黄金数方法被闰余方法取代，但可以编制出两者关系的简化表格，有效期由一至三个世纪不等。以下的闰余表对1900年至2199年适用。黄金数的算法为年份除以19的余数再加1，如2014年除以19的余数为0，故此2014黄金数是1。
格里历完整的5,700,000年周期复活节日期的分布
举例：2019年黄金数是6，闰余是24，则标记为「xxiv」日子是朔日，3月7日和4月5日为朔日，而望日为朔日的13日后，即3月20日和4月18日。3月21日或之后的望日是4月18日。这一日之后（不包括当日）的周日是复活节。2019年的主日字母是「F」，所以4月21日是复活节。
第偶数个阴历月只有29日，有一日需有两个闰余标记，而选择移动「xxv/25」的理由可能是：在闰余为24的年份，如果3月7日开始的阴历月有30日，复活节月便在4月6日开始，望日在4月19日，又假设该日是周日，复活节便在下周日4月26日。但是教会规定复活节不晚于4月25日，所以4月5日便有两个标记「xxv」「xxiv」。因此格里历中复活节最多出现在4月19日，约3.87%，最少出现在3月22日，约0.48%。

**儒略历**
格里历改革前西方教会使用的方法，也是东方正教会现今使用的方法，采用未改正的默冬周期，每周期开始闰余都是0日，因此复活节望日只可能有19个。因为儒略历不作出像格里历的改正，每过一千年，教会阴历的望日日期会比实际的望日推迟三日多，故此现时约有一半东正教的复活节比西方教会晚了一周。又由于儒略历在1900年至2099年间比格里历落后13日，格里历的复活节望日不时在儒略历3月21日之前，使东正教的复活节比西方教会晚了四至五周。
各地教会从4世纪开始渐渐采用此方法，931年最后一个英格兰修道院也采用。在采用此方法前各地用其他方法定出复活节日期，相差可以达至五周。
下表是自从931年起儒略历的复活节望日日期：
例子：1573年的黄金数是16，查表得到复活节望日是3月21日。从星期表得到该日是周六，因此复活节是其后的周日3月22日。

**演算法**

**高斯演算法**
这个方法由以数学家高斯命名。
用Y表示年份，mod运算指整数除法的余数（例如13 mod 5 = 3，详细请参见同余）。
东正教会所用的儒略历取M=15,N=6，西方教会所用的公历的取法参见下表：
年份      M   N
1583-1699  22   2
1700-1799  23   3
1800-1899  23   4
1900-2099  24   5
2100-2199  24   6
2200-2299  25   0- a = Y mod 19- b = Y mod 4- c = Y mod 7- d = (19a + M) mod 30- e = (2b + 4c + 6d + N) mod 7
若d+e 10，复活节应在4月18日。

**Meeus/Jones/Butcher演算法（公历）**
Jean Meeus在他的书《天文演算法》（Astronomical Algorithms，1991年）记载了这个计算公历中的复活节日期的方法，并指这个方法是来自Spencer Jones的书《一般天文学》（General Astronomy，1922年）和《英国天文学会期刊》（Journal of the Brithish Astronomical Association，1977年），后者指方法是来自Butcher's Ecclesiastical Calendar（1876年）。
这个方法的优点是不用任何表也没有例外的情况。注意这里用的是整数除法，7/2=3非3.5。

**Meeus演算法（儒略历）**
在《天文演算法》，使用了以下公式计算儒略历中的复活节日期：（注意这里用的是整数除法，7/2=3非3.5。）- a = Y mod 4- b = Y mod 7- c = Y mod 19- d = (19*c + 15) mod 30- e = (2*a + 4*b - d + 34) mod 7- 月 = (d+e+114) / 31- 日 = ((d+e+114) mod 31) + 1