Dim a, b, c, d, e, f, g, h, i, k, l, m, p, q, miesiac, dzien As Integer
Select Case rok
Case Is < 33
'Wtedy nie było Wielkanocy!
dzien = 0
miesiac = 0
Case 33 To 1582
'Metoda Gaussa dla kalendarza juliańskiego
p = 15
q = 6
a = rok Mod 19
b = rok Mod 4
c = rok Mod 7
d = (19 * a + p) Mod 30
e = (2 * b + 4 * c + 6 * d + q) Mod 7
If d + e < 10 Then
dzien = d + e + 22
miesiac = 3
Else
dzien = d + e - 9
miesiac = 4
End If
Case Else
'Metoda Meeusa/Jonesa/Butchera dla kalendarza gregoriańskiego
a = rok Mod 19
b = rok \ 100
c = rok Mod 100
d = b \ 4
e = b Mod 4
f = (b + 8) \ 25
g = (b - f + 1) \ 3
h = (19 * a + b - d - g + 15) Mod 30
i = c \ 4
k = c Mod 4
l = (32 + 2 * e + 2 * i - h - k) Mod 7
m = (a + 11 * h + 22 * l) \ 451
p = h + l - 7 * m + 114
dzien = (p Mod 31) + 1
miesiac = p \ 31
End Select
Wielkanoc = Right("0" & dzien, 2) & "-" & _
Right("0" & miesiac, 2) & "-" & _
Right("000" & rok, 4)
End Function
2000 | 23-04-2000 |
2001 | 15-04-2001 |
2002 | 31-03-2002 |
2003 | 20-04-2003 |
2004 | 11-04-2004 |
2005 | 27-03-2005 |
2006 | 16-04-2006 |
2007 | 08-04-2007 |
2008 | 23-03-2008 |
2009 | 12-04-2009 |
2010 | 04-04-2010 |
2011 | 24-04-2011 |
2012 | 08-04-2012 |
2013 | 31-03-2013 |
2014 | 20-04-2014 |
2015 | 05-04-2015 |
2016 | 27-03-2016 |
2017 | 16-04-2017 |
2018 | 01-04-2018 |
2019 | 21-04-2019 |
2020 | 12-04-2020 |
2021 | 04-04-2021 |
2022 | 17-04-2022 |
2023 | 09-04-2023 |
2024 | 31-03-2024 |
2025 | 20-04-2025 |
2026 | 05-04-2026 |
2027 | 28-03-2027 |
2028 | 16-04-2028 |
2029 | 01-04-2029 |
2030 | 21-04-2030 |
Komentarze