Húsvét : Algoritmusok húsvétvasárnap kiszámítására |
Algoritmusok húsvétvasárnap kiszámítására
2007.04.04. 22:16
Gauss módszere
A húsvét kiszámítására a legismertebb algoritmus Gauss módszere.
Az év sorszámát jelöljük Y-nal, az azt követő mod jelölés az osztás maradékát jelenti az utána álló egész számmal való osztáskor (pl. 13 mod 5 = 3; maradékaritmetika) Először számoljuk ki a, b és c egész számokat:
a = Y mod 19
b = Y mod 4
c = Y mod 7
Majd ezekből a következő értékeket:
d = (19a + M) mod 30
e = (2b + 4c + 6d + N) mod 7
A Julianus-naptár szerint (melyet a keleti egyházak használnak) M = 15 és N = 6, a Gergely-naptár szerint (melyet a nyugati egyházak használnak) M és N a következő táblázatból kapható:
Évek |
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 |
Ha d + e < 10 akkor márciusnak (d + e + 22)-edik napja húsvét, különben április (d + e − 9)-edik napja.
A következő kivételeket kell figyelembe venni:
- Ha április 26-át kapunk, akkor a húsvét április 19-én van.
- Ha április 25-ét kapunk, d = 28, e = 6, és a > 10 értékekkel, akkor húsvét április 18-ára fog esni.
Meeus Julian algoritmusa
Jean Meeus „Astronomical Algorithms” (1991) című könyvében mutatja be a következő algoritmust húsvét vasárnapjának kiszámítására.
Az eljárás Julián-év esetén működik, és nem lépnek fel kivételek, és nem szükséges hozzá táblázat.
A jelölések egyeznek Gauss modszeréével: minden érték egész, és az osztás is egész osztás tehát 7 / 3 = 2 (nem 2 1/3), és 7 mod 3 = 1.
a = Y mod 4
b = Y mod 7
c = Y mod 19
d = (19 * c + b) mod 30
e = (2 * a + 4 * b – d + 34) mod 7
hónap = (d + e + 114) / 31
nap = ((d + e + 114) mod 31) + 1
|