Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Vzorec pro výpočet data velikonoc
Jdi na stránku 1, 2  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Software
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Brozicek



Založen: Nov 07, 2005
Příspěvky: 1520
Bydliště: Studénka

PříspěvekZaslal: ne únor 19 2012, 9:44    Předmět: Vzorec pro výpočet data velikonoc Citovat

Možná to patří do jiné sekce, tak mi to tam přesuňte.
Našel jsem si někde na NETu algoritmus pro výpočet data velikonoc. Zkusil jsem si ten algoritmus jen tak ze zvědavosti napsat jako výpočet do buňky EXCEL. Vzorec vychází velmi dlouhý a komplikovaný, možná by šel nějak optimalizovat. Použitý algoritmus má být platný od roku 1901 do roku 2099.
Výpočtový vzorec jsem prověřoval pro roky od asi 1998 do 2012, vždy to souhlasilo s platným kalendářem.

Zkusil si někdo napsat ten vzorec jednodušeji nebo podle jinak definovaného algoritmu?

Protože zde nejde vložit jako přílohu soubor XLS, dám sem vzorce pro pro velikonoční neděli a pondělí jen jako textový řetězec. Textové řetězce je nutno odtud zkopírovat do uvedené buňky v EXCEL a v EXCEL je možno již vzorce kopírovat do jiné libovolné buňky. Buňku se vzorcem nastavte do formátu Datum d.m.rrrr aby se výsledek výpočtu správně zobrazil.

Poznámka: Podle následující diskuse byly vzorce dodatečně doplněny 21.2. o korekci data velikonoc o jeden týden dříve pro roky 1954, 1981, 2049 a 2076.

Velikonoční neděle: Zkopírovat do buňky B4, požadovaný rok pro výpočet vepište do A4.
=CONCATENATE((22+MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7))*A((22+MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7))>0;(22+MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7))<32)+(MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7)-9)*(A((MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7)-9)>0;(MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7)-9)<31))-7*(NEBO(A4=1954;A4=1981;A4=2049;A4=2076));".";3+1*(A((MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7)-9)>0;(MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7)-9)<31));".";A4)+0

Velikonoční pondělí: Zkopírovat do buňky F4, požadovaný rok pro výpočet vepište do E4.
=(CONCATENATE((22+MOD((19*MOD(E4;19)+24);30)+MOD((5+2*MOD(E4;4)+4*MOD(E4;7)+6*MOD((19*MOD(E4;19)+24);30));7))*A((22+MOD((19*MOD(E4;19)+24);30)+MOD((5+2*MOD(E4;4)+4*MOD(E4;7)+6*MOD((19*MOD(E4;19)+24);30));7))>0;(22+MOD((19*MOD(E4;19)+24);30)+MOD((5+2*MOD(E4;4)+4*MOD(E4;7)+6*MOD((19*MOD(E4;19)+24);30));7))<32)+(MOD((19*MOD(E4;19)+24);30)+MOD((5+2*MOD(E4;4)+4*MOD(E4;7)+6*MOD((19*MOD(E4;19)+24);30));7)-9)*(A((MOD((19*MOD(E4;19)+24);30)+MOD((5+2*MOD(E4;4)+4*MOD(E4;7)+6*MOD((19*MOD(E4;19)+24);30));7)-9)>0;(MOD((19*MOD(E4;19)+24);30)+MOD((5+2*MOD(E4;4)+4*MOD(E4;7)+6*MOD((19*MOD(E4;19)+24);30));7)-9)<31))-7*(NEBO(E4=1954;E4=1981;E4=2049;E4=2076));".";3+1*(A((MOD((19*MOD(E4;19)+24);30)+MOD((5+2*MOD(E4;4)+4*MOD(E4;7)+6*MOD((19*MOD(E4;19)+24);30));7)-9)>0;(MOD((19*MOD(E4;19)+24);30)+MOD((5+2*MOD(E4;4)+4*MOD(E4;7)+6*MOD((19*MOD(E4;19)+24);30));7)-9)<31));".";E4))+1


Naposledy upravil Brozicek dne út únor 21 2012, 9:43, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
OK2STO



Založen: Sep 19, 2008
Příspěvky: 439
Bydliště: Ostrava

PříspěvekZaslal: ne únor 19 2012, 10:06    Předmět: Citovat

Zdravím, tak tu přílohu v Excelu zkomprimovat třeba do Zipu nebo Raru a vložit sem.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Brozicek



Založen: Nov 07, 2005
Příspěvky: 1520
Bydliště: Studénka

PříspěvekZaslal: ne únor 19 2012, 10:46    Předmět: Citovat

Tady je ten soubor EXCEL v ZIP.


Velikonoce.ZIP
 Komentář:
V tomto souboru není korekce "minus 1 týden" pro roky 1954, 1981, 2049 a 2076 provedena. Opravený ZIP soubor je dále

Stáhnout
 Soubor:  Velikonoce.ZIP
 Velikost:  3.41 kB
 Staženo:  159 krát



Naposledy upravil Brozicek dne út únor 21 2012, 9:38, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: ne únor 19 2012, 10:53    Předmět: Citovat

Aj tak mi to OOo calc nezhltne (dlhé? reťazce príkazov?)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Brozicek



Založen: Nov 07, 2005
Příspěvky: 1520
Bydliště: Studénka

PříspěvekZaslal: ne únor 19 2012, 11:11    Předmět: Citovat

Našel jsem ještě ten popis toho naprogramovaného algoritmu. Mám ho jen jako JPG obrázek, proto přikládám.


Algoritmus velikonoc.JPG
 Komentář:

Stáhnout
 Soubor:  Algoritmus velikonoc.JPG
 Velikost:  287.84 kB
 Staženo:  144 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
tomasjedno



Založen: Oct 11, 2008
Příspěvky: 6066
Bydliště: ZZ9 Plural Z Alpha

PříspěvekZaslal: ne únor 19 2012, 11:27    Předmět: Citovat

Brozicek napsal(a):
Našel jsem si někde na NETu algoritmus pro výpočet data velikonoc. Zkusil jsem si ten algoritmus jen tak ze zvědavosti napsat..

Co tam dělají buňky L4 (v neděli) a O4 (v pondělí), a podmínky L4>25 a O4>25? To je nějaké nevyčištěné reziduum po testování na 25.4.? (které tam ovšem nemáš).
Algoritmus ve VisualBasicu máš tady http://cs.wikipedia.org/wiki/V%C3%BDpo%C4%8Det_data_Velikonoc


Naposledy upravil tomasjedno dne ne únor 19 2012, 12:12, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
tomasjedno



Založen: Oct 11, 2008
Příspěvky: 6066
Bydliště: ZZ9 Plural Z Alpha

PříspěvekZaslal: ne únor 19 2012, 11:39    Předmět: Citovat

procesor napsal(a):
Aj tak mi to OOo calc nezhltne (dlhé? reťazce príkazov?)

Tož si to rozkouskuj:
Velikonoční neděle:
den: =(22+MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7))*A((22+MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7))>0;(22+MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7))<32)+(MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7)-9)*(A((MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7)-9)>0;(MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7)-9)<31))-7*(L4>25)
měsíc: =3+1*(A((MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7)-9)>0;(MOD((19*MOD(A4;19)+24);30)+MOD((5+2*MOD(A4;4)+4*MOD(A4;7)+6*MOD((19*MOD(A4;19)+24);30));7)-9)<31))
rok: =A4
(bez záruky za správnost, jenom jsem to vykostil z Brozickových vzorců.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Brozicek



Založen: Nov 07, 2005
Příspěvky: 1520
Bydliště: Studénka

PříspěvekZaslal: ne únor 19 2012, 12:11    Předmět: Citovat

tomasjedno napsal(a):
Brozicek napsal(a):
Našel jsem si někde na NETu algoritmus pro výpočet data velikonoc. Zkusil jsem si ten algoritmus jen tak ze zvědavosti napsat..

Co tam dělají buňky L4 (v neděli) a O4 (v pondělí), a podmínky L4>25 a O4>25? To je nějaké nevyčištěné reziduum po testování na 25.4.?

Děkuji za upozornění. Ten vzorec vznikal někdy v roce 2006 nyní jsem ho oprášil. Je možné, že je tam přehlédnutá chyba, která se při testování na známé kalendářní dny velikonoc neprojevila. Asi tam patří také A4 a E4 jako všude jinde, ale musím se na to v klidu podívat. Jak vidím mám hodně skvělých oponentů, kteří ten postup rozpitvají a případné moje chyby opraví. Za to jim děkuji.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
termit256



Založen: Dec 06, 2007
Příspěvky: 10335

PříspěvekZaslal: ne únor 19 2012, 12:15    Předmět: Citovat

No nevim, nebude rychlejsi ty data velikonoc proste zapsat natvrdo do nejake tabulky? Nez se pul dne babrat s takovym vzorcem kde se snadno prehledne chyba.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Crifodo



Založen: Oct 11, 2005
Příspěvky: 15005

PříspěvekZaslal: ne únor 19 2012, 12:37    Předmět: Citovat

tady je to vydestilováno do Qbasicu, testováno na pár posledních let. Trvalo to míň než půl dne.
kód:
         
     CLS
     INPUT "rok:"; rok
     d = 19 * (rok MOD 19) + 24
     d = d MOD 30
     d = 22 + d + (5 + 2 * (rok MOD 4) + 4 * (rok MOD 7) + 6 * d) MOD 7
     IF d < 57 THEN GOTO brezen
     d = d - 7
brezen:
        IF d > 31 THEN GOTO duben
        PRINT d; " brezna"
        END
duben:
        PRINT d - 31; " dubna"
        END
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
EKKAR



Založen: Mar 16, 2005
Příspěvky: 31853
Bydliště: Česká Třebová, JN89FW21

PříspěvekZaslal: ne únor 19 2012, 16:32    Předmět: Citovat

Teď ještě jestli to splní zásadní podmínku astronomickou - totiž že datum Velikonoc se řídí kombinací slunečního a lunárního kalendáře, proto jsou Velikonoce pohyblivý svátek.
Přesně řečeno, Velikonocní svátky jsou v první neděli (a pondělí) následující po prvním jarním úplňku - neboli po prvním úplňku dovršeném po datu jarní rovnodnnosti = 21.března v tom kterém kalendářním roce. Přesně 49 dní PŘED Velikonoční nedělí je pak "Ostatkové úterý" neboli (známěji) MASOPUSTNÍ ÚTERÝ.

_________________
Nasliněný prst na svorkovnici domovního rozvaděče: Jó, paninko, máte tam ty Voltíky všecky...

A kutilmile - TY MNĚ TAKY Mr. Green Mr. Green !!!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
p32



Založen: Jan 13, 2007
Příspěvky: 15516
Bydliště: Olomouc

PříspěvekZaslal: ne únor 19 2012, 17:19    Předmět: Citovat

Nemáte tam ještě i nějaký program na zjištění, kterého krásného dne půjde tato vláda včetně její opozice do prd..le ? Jen bych rád věděl, jestli se toho ještě dožiju. Wink
Na Velikonoce se mi stačí mrknout do kalendáře (hotovo za 15 sekund).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
procesor



Založen: Oct 02, 2009
Příspěvky: 5286
Bydliště: PO

PříspěvekZaslal: ne únor 19 2012, 18:50    Předmět: Citovat

Ta tvoja "pozice i opozice" tam u vás, rovnako ako u nás, bude aj v r. 2050, ale Veľká Noc v tom roku sa dá zistiť len v takýmto a podobným algoritmom Very Happy.

Pripúšťam aj zmenu, ale ako doteraz jedna "lumpáreň" vystrieda druhú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Brozicek



Založen: Nov 07, 2005
Příspěvky: 1520
Bydliště: Studénka

PříspěvekZaslal: ne únor 19 2012, 19:43    Předmět: Citovat

tomasjedno napsal(a):
.....
Co tam dělají buňky L4 (v neděli) a O4 (v pondělí), a podmínky L4>25 a O4>25? To je nějaké nevyčištěné reziduum po testování na 25.4.? (které tam ovšem nemáš)......

Tak jsem odpoledne odklidil sníh na chatě a vyčistil si tím mozek. "Tomásjedno" mě odhalil parádně, upřímně mu za to děkuji. Našel jsem si archiv pro odvození vzorce a ty buňky L4 a O4 je skutečně pozůstatek ladění, kdy byl vzorec psán "per partes" podle měsíců a testoval jsem tím data ve sloupci pro duben. Pak jsem vše spojil do 1 vzorce, "náhle mne v práci vyrušil šéf" a bylo vymalováno. Chyba tam zůstala celých 6 roků (jako u Microsoftu).
Nakopíroval jsem si ty moje vzorce do sloupečků a provedl výpočet data velikonoc od roku 1901 do roku 2099. Vyšlo mi, že datum velikonoc je větší než 25.4. jen v roce 1981 a 2076. Tak jsem zachránil situaci tím, že v těch dvou rocích odečtu těch 7 dní.
V příloze je EXCEL s opravenou chybou.
EXCEL má snad pro výpočet data velikonoc proti Visual Basic nebo Qbasic v tom, že se dají vzorečky dát do nějaké EXCELovské aplikace bez znalosti toho jak tam dostat prográmky v "basicu".
Jednu aplikaci, ve které jsem použil tento výpočet sem dám za chvíli, až tam také opravím tu chybičku (projevila by se až v roce 2076).



Velikonoce.ZIP
 Komentář:
Korekce "minus 1 týden" pro roky 1954, 1981, 2049 a 2076 provedena.

Stáhnout
 Soubor:  Velikonoce.ZIP
 Velikost:  3.57 kB
 Staženo:  149 krát



Naposledy upravil Brozicek dne út únor 21 2012, 9:35, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Bernard



Založen: May 27, 2005
Příspěvky: 3647

PříspěvekZaslal: ne únor 19 2012, 20:29    Předmět: Citovat

Rozložení velikonoční neděle v čase. Rozdíl mezi sousedními roky za těch 100 let je minimálně 8 dní. Kdoví, jestli i za 1000 let?


velikonoce.png
 Komentář:

Stáhnout
 Soubor:  velikonoce.png
 Velikost:  22.17 kB
 Staženo:  151 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Software Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.17 sekund