21.01.2010 | 23:55
U maniri one Konfucijeve: "Daj čovjeku ribu i nahranio si ga jedan dan. Nauči ga loviti ribu i nahranio si ga za cijeli život.", a pretpostavivši da većinom ove kalendare trebate radi Uskrsa i Tijelova (ne želim vjerovati da ove druge datume niste kadri zapamtiti
), nudim vam i drugu mogućnost.
Datoteka za prilog:
Naziv datoteke:
uskrs.zipVeličina datoteke: 11310
U priloženom ZIP-u je XLS u kojem su definirane dvije Visual Basic funkcije (kad otvarate XLS, ako vas pita, recite "Enable Macros" ). U bilo koju praznu ćeliju utipkati formulu
=uskrs(godina)
ili
=tijelovo(godina)
i dobit ćete točan datum Uskrsa, odnosno Tijelova za zadanu godinu. Naravno, ako želite datum Uskršnjeg ponedjeljka, upišete
=uskrs(godina)+1
Funkcije uredno rade i u NeoOffice-u, a u istom kôd izgleda ovako:
Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Public Function uskrs(godina As Integer) As Date
Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer, f As Integer, g As Integer, h As Integer, i As Integer, k As Integer, l As Integer, m As Integer
Dim umj As Integer, udan As Integer
a = godina Mod 19
b = godina \ 100
c = godina 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
umj = (h + l - 7 * m + 114) \ 31
udan = ((h + l - 7 * m + 114) Mod 31) + 1
uskrs = DateSerial(godina, umj, udan)
End Function
Sam algoritam je, u ovom istom obliku, dostupan na webu, na više mjesta. Zahvaljujem nepoznatom autoru.