Pošto trenutno radim nešto vezano za pravoslavni crkveni kalendar i važne praznike vezane za isti potražio sam po netu algoritam za izračunavanje pravoslavnog Uskrsa na osnovu koga se izračunavaju skoro svi ostali tzv. pokretni praznici. I al sam se razočarao kada sam video koliko je malo kvalitetnih i pre svega tačnih rešenja (algoritama).
Hteo sam zbog toga sa vama da podelim jedan od kvalitetnijih na koji sam naleteo a koji se bazira na računanjima Pravoslavne crkve. Usput sam naveo i par zanimljivih linkova na kojima možete dobiti jako korisne infomacije za rad :)
NAPOMENA: Kod je preuzet sa "Elite security" foruma sa sledeće lokacije (http://www.elitesecurity.org/t304994-Racunanje-datuma-pravoslavnog-uskrsa-dve-linije)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
const char *mesec;
if (argc!=2)
{
printf("Upotreba : uskrs godina\n");
return 0;
}
int g = atoi(argv[1]);
int d = (15+g%19*19)%30; // Ovo su te
d += 10-(d+g+g/4)%7; // dve linije
if (d>30)
{
mesec = ". maja";
d -= 30;
}
else
mesec = ". aprila";
printf("Uskrs %d. pada %d%s\n", g, d, mesec);
return 0;
}
Korisni linkovi:
http://s92645748.onlinehome.us/sky-dial/januar2006.html#anch14
http://milan.milanovic.org/math/srpski/uskrs/uskrs.html
Čitajući ovaj tvoj tekst pala mi je na um jedna ideja - nažalost ideje nam se samo roje, ali nam je realizacija slaba.
Ideja je sledeća - Možda studente treba podstaknuti da npr. malo tragaju za zanimljivim algoritmima, koji bi onda bili realizovani kroz pratične programe. Na kraju godine bi se izdavala zbirka tih rešenja u elektronskom obliku.
Onako usput... Skoro ceo dan se razmišljam kako da realizujem crkveni kalendar za proizvoljni mesec i godinu... Bez uspeha :banghead: Stvarno ne znam šta sve nisam probao i dalje ne mogu ni da "prismrdim" algoritmu za računanje praznika koji se "pozicioniraju" izjavama tipa "prva nedelja pred Uskrs" i sličnim :((
Da stvar bude gora pogledao sam po netu i naišao na par realizacija kalendara koje su daleko od tačnog :(( Okej... Nepokretni praznici su na mestu ali ovi koji se relativno pozicioniraju su izgrešeni skoro svuda... :I
Čisto da vidite kako napreduje posao za sada evo slike. Na njoj se vide izrendani samo nepokretni praznici.
Znači ne znam šta drugo da kažem osim da pred svom ovom vrućinom čovek može da ostane samo slep pred očima :I Naime, pogledao sam svoju listu pokretnih praznika i ukapirao u stvari da logičkim zaključivanjem za skoro sve pokretne praznike mogu da nađem offset u Unix timestamp-u u odnosu na Uskrs :banghead: Znači ceo dan gledam u ovo čudo od liste i to jednostavno ne vidim :mad:
Okej... Čim završim sa izradom objaviću svoje klase za pravoslavni kalendar zajedno sa detaljnom dokumentacijom :) Čisto da ima svako pri ruci kome bude možda zatrebalo za neki projekat.
Epilog cele priče je da sam na Elite security-ju našao čoveka, inače matematičara, koji je veoma zainteresovan za to da mi pomogne oko izrade jednog "Večitog pravoslavnog kalendara" koji bi bio licenciran u okviru GPL-a :-<
Detalje možete pročitati ovde http://www.elitesecurity.org/t332162-Algoritam-za-razvoj-pravoslavnog-crkvenog-kalendara (http://www.elitesecurity.org/t332162-Algoritam-za-razvoj-pravoslavnog-crkvenog-kalendara)
BTW... Računica i sam algoritam za realizaciju ovog kalendara se pretvorio u pravu noćnu moru i to još bez ikakvog uplitanja naprednih matematičkih funkcija koje sam dobio na Elite security-ju :o
Čini mi se da, kada budem završio sa ovim poslom, da ću snimiti jedan kraći video snimak sa objašnjenjem kako se ceo algoritam i uopšte ova aplikacija koju radim realizuje :^o Jeste interesantno u određenim situacijama ali je bogami i prenaporno kada treba da se potegne za pravljenjem potpuno novog algoritma za koji nema čovek apsolutno nikakve predstave da li će ispasti dobro :banghead:
Trenutno završavam poslednu, najkritičniju deonicu algoritma a jedini problem je što mi na prvi pogled izgleda (onako bez debuggovanja) da je sve okej =P~ Obično nije :P