復活節的計算

**復活節的計算**（**computus**，拉丁文「計算」之意），其規則是復活節的日期是在 3 月 21 日當日或之後的滿月日後的首個星期日。天主教會設計了方法去定一個「天主教的月」，而不像猶太人般觀察真正的月亮。

## 歷史

基督教在二世紀開始，出現兩個紀念耶穌復活的日期：東方的小亞細亞教會，遵循耶穌的使徒的遺傳，於是在猶太人的逾越節，即是猶太曆尼散月十四日，紀念耶穌的受難和復活，表明逾越節羔羊預表耶穌（哥林多前書 5:7）。至於以羅馬教會為代表的西方教會，就在逾越節後的星期日紀念耶穌的復活。從二世紀後期開始，這項分歧引致教會間很大紛爭。後來在 325 年第一次尼西亞會議，決定不按猶太曆法，而按照春分月圓，自行計算出復活節日期（但是所謂「春分」是固定於西曆 3 月 21 日）。此後教會為了定出從西曆計算月亮周期的方法，不依賴於天文觀察，各地先後提出多種方法，歷時數個世紀，才定出各地教會共用的計算表冊和方法。

## 理論

由於猶太曆是陰曆，基督教會捨棄依從猶太曆的傳統時，便造出自己的陰曆取代。每 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。

　
:

　
:

舉例：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 則復活節在 3 月 (d+e+22) 日，反則在 4 月 (d+e-9) 日，除了兩個特殊情況：

* 若公式算出的日期是 4 月 26 日，復活節在 4 月 19 日；
* 若公式算出的日期是 4 月 25 日，同時 d=28、e=6 和 a>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