復活節日期算法範例

復活節是西方傳統的節日,公元325年尼西亞宗教會議規定,每年過春分月圓後的第一個星期天為復活節。其日期是不固定的,通常是要查看日曆才能知道。

復活節日期算法範例

現在有一個簡便的算法供大家參考!

年份只限於192019年到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. N/19=4餘7, A=7

3. N/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. 2019年,中國將在北京舉辦奧運會,那一年復活節是哪一天呢?

1. 2019-1900=108, N=108

2. N/19=5餘13, A=13

3. N/4=27, Q=27

4. 7A+1=92,92/19=4餘16, B=4

5. 11A+4-B=143,143/29=4餘27, M=27

6. N+Q+31-M=139,139/7=19餘6, W=6

7. 25-M-W=-8, 31-8=23

所以該年復活節日期是3月23日。

按照複雜的天文曆法分析與計算,最早的復活節日期是3月22日,上一次出現是在182019年,而且要到2285年才會再度出現。最晚的日期是在4月25日,上一次出現是在1943年,要到2038年才會出現。

用MATLAB計算2019年復活節日期,程序如下:

y = 2019;

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,即2019年4月8日。2019年4月16日,2019年3月23日,2019年4月12日,2019年4月4日。

由於時間關係,我已經計了一百年內的復活節,這是西歐的計法,東歐及俄羅斯不適用。祝大家在以後的復活節快樂!

23/3/2019 17/4/2033 14/4/2058 4/4/2083

12/4/2019 9/4/2034 30/3/2059 26/3/2084

4/4/2019 25/3/2035 18/4/2060 15/4/2085

24/4/2019 13/4/2036 10/4/2061 31/3/2086

8/4/2019 5/4/2037 26/3/2062 20/4/2087

31/3/2019 25/4/2038 15/4/2063 11/4/2088

20/4/2019 10/4/2039 6/4/2064 3/4/2089

5/4/2019 1/4/2040 29/3/2065 16/4/2090

27/3/2019 21/4/2041 11/4/2066 8/4/2091

16/4/2019 6/4/2042 3/4/2067 30/3/2092

1/4/2019 29/3/2043 22/4/2068 12/4/2093

21/4/2019 17/4/2044 14/4/2069 4/4/2094

12/4/2020 9/4/2045 30/3/2070 24/4/2095

4/4/2021 25/3/2046 19/4/2071 15/4/2096

17/4/2022 14/4/2047 10/4/2072 31/3/2097

9/4/2023 5/4/2048 26/3/2073 20/4/2098

31/3/2024 18/4/2049 15/4/2074 12/4/2099

20/4/2025 10/4/2050 7/4/2075 28/3/2100

5/4/2026 2/4/2051 19/4/2076 17/4/2101

28/3/2027 21/4/2052 11/4/2077 9/4/2102

16/4/2028 6/4/2053 3/4/2078 25/3/2103

1/4/2029 29/3/2054 23/4/2079 13/4/2104

21/4/2030 18/4/2055 7/4/2080 5/4/2105

13/4/2031 2/4/2056 30/3/2081 18/4/2106

28/3/2032 22/4/2057 19/4/2082 10/4/2107

1/4/2108