Algoritam za računanje datuma pravoslavnog Uskrasa

Započeo holodoc, 03.08.2008, 12:02

« prethodna tema - sledeća tema »
Idi dole

holodoc

03.08.2008, 12:02 Poslednja Izmena: 03.08.2008, 12:55 od rasin
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
<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

Siniša Ranđić

Č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.

holodoc

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.

<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

holodoc

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.
<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

holodoc

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
<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

holodoc

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
<?php
abstract class Ignorance extends Stupidity implements Unavoidable 
    private function 
__construct(){
        
parent::__destruct();
    }; 

// EOF -> life.php

Idi gore