6.7.08

Velikonoční svátek

Potřeboval jsme určit datum Velikonočního pondělí v excelu, a tak jsem si našel jak se vypočítává a napsal si vlastní funkci VelSvatek:

Function VelSvatek(rok As Integer) As Date

Dim zbytek1, zbytek2, zbytek3, zbytek4, zbytek5, vysledek1 As Integer
Dim vysledek2 As Integer
Dim Zacatek As Date

Zacatek = CDate("22.3." & CStr(rok))

zbytek1 = rok Mod 19
zbytek2 = rok Mod 4
zbytek3 = rok Mod 7

zbytek4 = (zbytek1 * 19 + 24) Mod 30
vysledek1 = 5 + (2 * zbytek2) + (4 * zbytek3) + (6 * zbytek4)
zbytek5 = vysledek1 Mod 7
vysledek2 = zbytek5 + zbytek4

' prictu jeste 1 aby datum bylo pondeli po velikonocni nedeli
VelSvatek = Zacatek + vysledek2 + 1

End Function

No a pak jsem přes hodného strýčka google našel tento elegantní vzorec:
=KČ(("4/"&rok)/7+MOD(19*MOD(rok;19)-7;30)*14%;)*7-5
, kde místo rok zadám požadovaný letopočet.
Člověk se pořád učí :-).