# 復活節的計算[编辑]

一個來自瑞典的表，用來計算1140年至1671年的復活節日期
**復活節的計算**（拉丁語：*computus*，本詞即「計算」之意），是指對基督教重要節日復活節的日期算定方式，拉丁語全名為「*computus paschalis*」，東正教會則以「*paschalion*」稱之。其規則是復活節定於春分後第一次滿月之後的第一個星期日：這裡所說的「春分」是以3月21日作為固定近似值；而「第一次滿月」的日期並不完全依照實際天文現象、也不完全依照曆法，而是由教會使用特定數學公式推算。此使復活節成為教會年曆中的「移動慶日」，而有別於聖誕節等每年日期不變的「固定慶日」。

基督教發展初期，各地教會對復活節的日期已有爭議，但大致依希伯來曆以猶太人的逾越節推算；為了解決此爭議，同時擺脫對希伯來曆的依賴，西曆325年召開的第一次尼西亞公會議決定另採機制來計算復活節的日期。這套算法之所以如此複雜，是因為教會希望將復活節的日期與逾越節相連結——基督徒相信，耶穌正是在逾越節期間受難死亡並在三日後復活的。

由於歷史上數次的教會分裂，實際上復活節日期的計算，會隨著基督教各宗派採用的曆法而有所不同，東方教會主要依儒略曆、西方教會則主要依格里曆。格里曆的出現，便是因為採用儒略曆計算的春分日期愈來愈偏離3月21日，導致復活節的計算出現問題而改革制定的。

## 歷史

復活節定於何日的問題，自2世紀的初期教會就已出現。當時有兩個紀念耶穌復活的日期：以小亞細亞教會為主的東方教會，遵循耶穌的使徒的遺傳，在猶太人的逾越節、即希伯來曆尼散月十四日，紀念耶穌的受難和復活，表明逾越節羔羊預表耶穌（哥林多前書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。

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 黃金數
 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19
 |
| 閏餘
 | 29 | 10 | 21 | 2 | 13 | 24 | 5 | 16 | 27 | 8 | 19 | \* | 11 | 22 | 3 | 14 | 25 | 6 | 17
 |

格里曆完整的5,700,000年周期復活節日期的分佈

| 標記 | 3月 | 主日字母 | 4月 | 主日字母
 |
| --- | --- | --- | --- | --- |
| \* | 1 | D |  |  |
| xxix | 2 | E | 1 | G
 |
| xxviii | 3 | F | 2 | A
 |
| xxvii | 4 | G | 3 | B
 |
| xxvi | 5 | A | 4 | C
 |
| *25* | 6 | B
 |
| xxv | 5 | D
 |
| xxiv | 7 | C
 |
| xxiii | 8 | D | 6 | E
 |
| xxii | 9 | E | 7 | F
 |
| xxi | 10 | F | 8 | G
 |
| xx | 11 | G | 9 | A
 |
| xix | 12 | A | 10 | B
 |
| xviii | 13 | B | 11 | C
 |
| xvii | 14 | C | 12 | D
 |
| xvi | 15 | D | 13 | E
 |
| xv | 16 | E | 14 | F
 |
| xiv | 17 | F | 15 | G
 |
| xiii | 18 | G | 16 | A
 |
| xii | 19 | A | 17 | B
 |
| xi | 20 | B | 18 | C
 |
| x | 21 | C | 19 | D
 |
| ix | 22 | D | 20 | E
 |
| viii | 23 | E | 21 | F
 |
| vii | 24 | F | 22 | G
 |
| vi | 25 | G | 23 | A
 |
| v | 26 | A | 24 | B
 |
| iv | 27 | B | 25 | C
 |
| iii | 28 | C | 26 | D
 |
| ii | 29 | D | 27 | E
 |
| i | 30 | E | 28 | F
 |
| \* | 31 | F | 29 | G
 |
| xxix |  |  | 30 | A
 |

舉例：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年起儒略曆的復活節望日日期：

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 黃金數
 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19
 |
| 復活節望日
 | 4月5日 | 3月25日 | 4月13日 | 4月2日 | 3月22日 | 4月10日 | 3月30日 | 4月18日 | 4月7日 | 3月27日 | 4月15日 | 4月4日 | 3月24日 | 4月12日 | 4月1日 | 3月21日 | 4月9日 | 3月29日 | 4月17日
 |

例子：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。

|  |  |  |
| --- | --- | --- |
|  | Worked Example Year(Y) = 1961
 | Worked Example Year(Y) = 2000
 |
| a = Y mod 19 | 1961 mod 19 = 4
 | 2000 mod 19 = 5
 |
| b = Y / 100 | 1961 / 100 = 19
 | 2000 / 100 = 20
 |
| c = Y mod 100 | 1961 mod 100 = 61
 | 2000 mod 100 = 0
 |
| d = b / 4 | 19 / 4 = 4
 | 20 / 4 = 5
 |
| e = b mod 4 | 19 mod 4 = 3
 | 20 mod 4 = 0
 |
| f = (b + 8) / 25 | (19 + 8) / 25 = 1
 | (20 + 8) / 25 = 1
 |
| g = (b - f + 1) / 3
 | (19 - 1 + 1) / 3 = 6
 | (20 - 1 + 1) / 3 = 6
 |
| h = (19 \* a + b - d - g + 15) mod 30
 | (19 \* 4 + 19 - 4 - 6 + 15) mod 30 = 10
 | (19 \* 5 + 20 - 5 - 6 + 15) mod 30 = 29
 |
| i = c / 4 | 61 / 4 = 15
 | 0 / 4 = 0
 |
| k = c mod 4 | 61 mod 4 = 1
 | 0 mod 4 = 0
 |
| l = (32 + 2 \* e + 2 \* i - h - k) mod 7
 | (32 + 2 \* 3 + 2 \* 15 - 10 - 1) mod 7 = 1
 | (32 + 2 \* 0 + 2 \* 0 - 29 - 0) mod 7 = 3
 |
| m = (a + 11 \* h + 22 \* l) / 451
 | (4 + 11 \* 10 + 22 \* 1) / 451 = 0
 | (5 + 11 \* 29 + 22 \* 3) / 451 = 0
 |
| month = (h + l - 7 \* m + 114) / 31
 | (10 + 1 - 7 \* 0 + 114) / 31 = **4** (April)
 | (29 + 3 - 7 \* 0 + 114) / 31 = **4** (April)
 |
| day = ((h + l - 7 \* m + 114) mod 31) + 1
 | (10 + 1 - 7 \* 0 + 114) mod 31 + 1 = **2** | (29 + 3 - 7 \* 0 + 114) mod 31 + 1 = **23** |
|  | 1961年4月2日
 | 2000年4月23日
 |

### 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

## 參考資料