復活節計算表冊 目录
歷史
理論
表列法
演算法
导航菜单
復活節曆法
中世紀復活節滿月天主教猶太人逾越節猶太曆尼散月哥林多前書逾越節第一次尼西亞會議西曆默冬週期儒略曆黃金數格里曆主日字母儒略曆高斯同餘儒略曆公曆
確定復活節日期在中世紀早期稱為computus(拉丁文中的計算)。其規則是復活節的日期是在3月21日當日或之後的滿月日後的首個星期日。天主教教会設計了方法去定一個「天主教的月」,而不像猶太人般觀察真正的月亮。
目录
1 歷史
2 理論
3 表列法
3.1 格里曆
3.2 儒略曆
4 演算法
4.1 高斯演算法
4.2 Meeus/Jones/Butcher演算法(公曆)
4.3 Meeus演算法(儒略曆)
歷史
基督教會在二世紀開始,出現兩個紀念耶穌復活的日期:東方的小亞細亞教會,遵循耶穌的使徒的遺傳,於是在猶太人的逾越節,即是猶太曆尼散月十四日,紀念耶穌的受難和復活,表明逾越節羔羊預表耶穌。(哥林多前書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
標記
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
|