Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Računanje datuma Uskrsa :)

[es] :: Office :: Excel :: Računanje datuma Uskrsa :)

[ Pregleda: 6527 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

3okc
Χoᴘᴦoѡ

Moderator
Član broj: 811
Poruke: 1319

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Računanje datuma Uskrsa :)10.04.2012. u 13:43 - pre 146 meseci
Ovih dana je aktuelno a ne postoji slična tema. :)

Izračunavanje Uskrsa po Gregorijanskom kalendaru
Code:
=FLOOR(DATE(GGGG;5;DAY(MINUTE(GGGG/38)/2+56));7)-34

Varijanta na čuvenu formulu Norberta Hettericha kojom je pobedio na takmičenju za najkraći proračun Uskrsa. (Spisak finalista ima na http://www.contextures.com/exceleastercalculation.html)
Formula je izmenjena da radi nezavisno od lokalnih podešavanja i trebalo bi da daje ispravan rezultat u opsegu 1900 - 2368 (prema cpearson - Easter Calculation, nisam proveravao).

Izračunavanje Uskrsa po Julijanskom kalendaru u datum po zvaničnom, Gregorijanskom kalendaru
Code:
a := GGGG mod 4
b := GGGG mod 7
v := GGGG mod 19
g := (19v + 15) mod 30
d := (2a + 4b − g + 34) mod 7

=DATE(GGGG;FLOOR((G + MOD(2*A + 4*B - G + 34;7) + 114) / 31;1);
MOD((G + MOD(2*A + 4*B - G + 34;7) + 114);31) + 14)

ili, bez skraćivanja
Code:
=DATE(GGGG;FLOOR((MOD(19*MOD(GGGG;19)+15;30) + MOD(2*MOD(GGGG;4) + 4*MOD(GGGG;7) - 
MOD(19*MOD(GGGG;19)+15;30) + 34;7) + 114) / 31;1);MOD((MOD(19*MOD(GGGG;19)+15;30) + 
MOD(2*MOD(GGGG;4) + 4*MOD(GGGG;7) - MOD(19*MOD(GGGG;19)+15;30) + 34;7) + 114);31) + 14)

Algoritam je sa wikipedia/Computus a verovatno da može i kraće. ;)
Ova je formula ispravna 'samo' do 2099 zbog uprogramirane razlike između dva kalendara.

Zanimljivo:
Računanje datuma pravoslavnog uskrsa u dve linije
http://milan.milanovic.org/math/srpski/uskrs/uskrs.html

[Ovu poruku je menjao 3okc dana 10.04.2012. u 18:42 GMT+1]


[Edit: Link na veb-arhivu]

[Ovu poruku je menjao 3okc dana 01.03.2024. u 10:41 GMT+1]
Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
 
Odgovor na temu

Ivek33

Član broj: 66174
Poruke: 2898



+66 Profil

icon Re: Računanje datuma Uskrsa :)10.04.2012. u 21:12 - pre 146 meseci
Bravo @3okc
Odlična tema i vrlo korisna

Evo malog dodatka za razmišljanje koji je sličan a različit - radi se o Gregorijanskom kalendaru ;)

Ako je u A1 godina (npr: 2012)

Code:

=DOLLAR(("4/"&A1)/7+MOD(19*MOD(A1;19)-7;30)*14%;)*7-6

=FLOOR(DAY(MINUTE(A1/38)/2+56)&"/5/"&A1;7)-34

pozz
 
Odgovor na temu

timmy
Jovan Timotijevic

Moderator
Član broj: 37087
Poruke: 634

Sajt: www.e-tim.net


+89 Profil

icon Re: Računanje datuma Uskrsa :)10.04.2012. u 21:58 - pre 146 meseci
Zanimljivo, ali da li u ovim formulama nesto ne valja ili ce zaista posle 2100-te Uskrs po julijanskom biti pre Uskrsa po gregorijanskom???
Prikačeni fajlovi
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
*.dynamic.isp.telekom.rs.



+9 Profil

icon Re: Računanje datuma Uskrsa :)10.04.2012. u 22:27 - pre 146 meseci
Na linku koji je Zokc postavio (http://milan.milanovic.org/math/srpski/uskrs/uskrs.html) ovi datumi koji su "u minusu" u Timmyjevoj tabeli, su - identični. Naprimer - za 2115.godinu je kod Timmyja - pravoslavni 13.aprila, a katolički - 14.04. Kod Milanovica su obadva - 14.04. Isto važi i za sve druge "minusne" godine. Očigledno da postoji problem u formulama. Uostalom, Zokc je i naveo da formule daju tačan rezultat samo - do 2099.
Od mene takodje sve pohvale za ovu temu. Kao moj skromni doprinos evo jedne forme sa uporednim pregledima (od 1900-2099, a za posle... ko doživi - pričaće).
Pozdrav
Prikačeni fajlovi
 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Moderator
Član broj: 811
Poruke: 1319

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: Računanje datuma Uskrsa :)11.04.2012. u 08:18 - pre 146 meseci
@Ivek33, to su prve dve formule sa takmičenja za najkraći proračun. Jesu lepe ovako kratke ali ne treba zaboraviti kontekst u kome su stvorene jer i imaju ozbiljnih mana. Pobednička, tj najkraća ima grešku u 2079. godini a obe su osetljive na regionalna podešavanja. Tamo, pri još višim vrednostima počinju i da 'fulaju'.

@timmy, nemoguće je da razlika bude 1 dan, to bi značilo da Uskrs pada u subotu. :D Radi se o usklađivanju kašnjenja između dva kalendara - algoritam za računanje je i dalje ispravan ali s obzirom da pravoslavni Uskrs ispisujemo prema zvaničnom, Gregorijanskom kalendaru, onda vršimo i tu korekciju. Kašnjenje vremenom raste za po 1 dan na 100 godina.

@neptuncokg, ovo ti je odlično što si uradio, podseća na kalkulator sa Milanovićevog sajta.
Kada si već upotrebio VBA mogao si i kompletan proračun da mu prepustiš tako bi se dobio širi opseg za godine. Imaš tamo na contecturex gotovu funkciju do 9999 godine za Gregorijanski kal. i piše da je provereno ispravan za svaku. ;)
Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
Prikačeni fajlovi
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
*.dynamic.isp.telekom.rs.



+9 Profil

icon Re: Računanje datuma Uskrsa :)11.04.2012. u 13:18 - pre 146 meseci
Video sam ja taj makro, isprobao ga i - radi odlično. Ali samo za katolički Uskrs. Pa, rekoh, da ne mešam - ovo sa VBA a ono sa excel-funkcijom. Bilo bi sjajno kad bi imali VBA-makro i za pravoslavni Uskrs. To bi onda bio "pravi" program. Pozdrav.
 
Odgovor na temu

Ivek33

Član broj: 66174
Poruke: 2898



+66 Profil

icon Re: Računanje datuma Uskrsa :)16.04.2012. u 19:08 - pre 146 meseci
Vidim da se tema pomalo zatvara, pa da dodam još par stvari.

Interesantno pojašnjenje kako se računa Uskrs možete pogledati i na ovom linku.

- Calculate Easter

A evo i nekih VBA code koje prenosim sa web-a
Code:
Function EASTER(year As Single) As Date
    'Based on Claus Tondering algorithm interpretation.
    'See http://www.tondering.dk/claus/cal/calendar29.html
    'Norman Harker 10-Jul-2004
    Dim G As Integer: Dim C As Integer: Dim H As Integer
    Dim I As Integer: Dim J As Integer: Dim L As Integer
    Dim EM As Integer: Dim ED As Integer
    Dim Adj1904 As Integer
    G = year Mod 19
    C = year \ 100
    H = (C - C \ 4 - (8 * C + 13) \ 25 + 19 * G + 15) Mod 30
    I = H - (H \ 28) * (1 - (29 \ (H + 1)) * ((21 - G) \ 11))
    J = (year + year \ 4 + I + 2 - C + C \ 4) Mod 7
    L = I - J
    EM = 3 + (L + 40) \ 44
    ED = L + 28 - (31 * (EM \ 4))
    If ActiveWorkbook.Date1904 = True Then
        Adj1904 = 365 * 4 + 2
    End If
    EASTER = DateSerial(year, EM, ED) - Adj1904
End Function


Code:
Function ORTHODOXEASTER(year As Single) As Date
    'Based on Claus Tondering algorithm interpretation.
    'See http://www.tondering.dk/claus/cal/calendar29.html
    'Norman Harker 11-Jul-2004
    Dim G As Integer: Dim I As Integer: Dim J As Integer
    Dim L As Integer
    Dim EM As Integer: Dim ED As Integer
    Dim Adj1904 As Integer: Dim JulAdj As Integer
    G = year Mod 19
    I = (19 * G + 15) Mod 30
    J = (year + year \ 4 + I) Mod 7
    L = I - J
    EM = 3 + (L + 40) \ 44
    ED = L + 28 - (31 * (EM \ 4))
    If ActiveWorkbook.Date1904 = True Then
        Adj1904 = 365 * 4 + 2
    End If
    JulAdj = 10 + (year \ 100) - 16 - (year \ 400) + 4
    ORTHODOXEASTER = DateSerial(year, EM, ED) - Adj1904 + JulAdj
End Function


Citat:
People who want to dig into the workings of this algorithm, may be interested to know that
the Golden Number = (year mod 19) + 1
the Epact = (11 × (GoldenNumber – 1)) mod 30

C is the century (year \ 100).
G is the Golden Number–1.
H is 23–Epact (modulo 30).
I is the number of days from 21 March to the Paschal full moon.
J is the weekday for the Paschal full moon (0=Sunday, 1=Monday, etc.).
L is the number of days from 21 March to the Sunday on or before the Paschal full moon (a number between -6 and 28).


[Ovu poruku je menjao Ivek33 dana 16.04.2012. u 20:22 GMT+1]

[Edit: dodat opis promenljivih]

[Ovu poruku je menjao 3okc dana 18.04.2012. u 07:26 GMT+1]
 
Odgovor na temu

borovicanin
Srbija

Član broj: 333910
Poruke: 1
*.dynamic.isp.telekom.rs.



Profil

icon Računanje datuma Vaskrsa22.06.2016. u 16:46 - pre 95 meseci
Pozdrav. Evo jedne moje solucije za jednu funkciju za proračun svih godina od 1900-te do 2499-te godine. Tačnije ovo je modifikovana Trokacova (3okc) funkcija.

Kada u C5 unesete godinu, u ćeliji u kojoj je sledeća funkcija dobijate datum.

Code:

=IF($C$5<1900;"neodgovarajuća godina";IF($C$5>2499;"neodgovarajuća godina";DATE($C$5;FLOOR((MOD(19*MOD($C$5;19)+15;30) + MOD(2*MOD($C$5;4) + 4*MOD($C$5;7) -MOD(19*MOD($C$5;19)+15;30) + 34;7) + 114) / 31;1);MOD((MOD(19*MOD($C$5;19)+15;30) +MOD(2*MOD($C$5;4) + 4*MOD($C$5;7) - MOD(19*MOD($C$5;19)+15;30) + 34;7) + 114);31) + IF($C$5<2100;14;IF($C$5<2200;15;IF($C$5<2300;16;17))))))


Možete preuzeti atačment i proveriti kako radi.

[Ovu poruku je menjao borovicanin dana 22.06.2016. u 18:19 GMT+1]
Sve je dobro, što se dobro isprogramira.
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Office :: Excel :: Računanje datuma Uskrsa :)

[ Pregleda: 6527 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.