Vzorec pro výpočet data velikonoc
Moderátor: Moderátoři
Vím že kalendář je v každém mobilu. Tento EXCELovský kalendář, který proti mobilu zvýrazňuje všechny svátky v ČR včetně velikonočního pondělí, může mít pro někoho snad i praktické využití. Pro mne se stal užitečnou pomůckou v práci i soukromí.
Kalendář umožňuje rychlý pohled do minulosti i do budoucnosti. Stačí napsat počáteční datum a nakopírovat řádky nebo sloupce podle délky období, které mne zajímá.
- Přílohy
-
Kalendář.ZIP- Korekce "minus 1 týden" pro roky 1954, 1981, 2049 a 2076 provedena.
- (89.76 KiB) Staženo 142 x
- tomasjedno
- Příspěvky: 6547
- Registrován: 11 říj 2008, 00:00
- Bydliště: ZZ9 Plural Z Alpha
Brozicek píše:...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í...
Tím bych si nebyl tak jist. Algoritmus na Wiki, co jsem na něj dával odkaz, hlásí posun Velikonoc na termín o 1 týden dříve pro roky
1954 (neděle 25.4.->18.4.)
1981 (neděle 26.4.->19.4.)
2049 (neděle 25.4.->18.4.)
2076 (neděle 26.4.->19.4.)
(v letech 1943 a 2038 mu Velikonoční neděle 25.4. nevadí - jedná se o aplikaci toho prvního if: "Je-li u = 25, d = 28, e = 6 a a > 10, pak u = 18, v = 4 a Velikonoční neděle připadá na 18. duben.")
- tomasjedno
- Příspěvky: 6547
- Registrován: 11 říj 2008, 00:00
- Bydliště: ZZ9 Plural Z Alpha
Velikonoční neděle = 22.3.rrrr + d + e [=DATUM(A4;3;22)+X4+Y4]
kde ty hodnoty d, e jsou definovány v tom Vašem jpg anebo tady: http://cs.wikipedia.org/wiki/V%C3%BDpo% ... _Velikonoc
a provést korekci o týden pro ty roky 1954, 1981, 2049, 2076.
tomasjedno píše:Brozicek píše:...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í...
Tím bych si nebyl tak jist. Algoritmus na Wiki, co jsem na něj dával odkaz, hlásí posun Velikonoc na termín o 1 týden dříve pro roky
1954 (neděle 25.4.->18.4.)
1981 (neděle 26.4.->19.4.)
2049 (neděle 25.4.->18.4.)
2076 (neděle 26.4.->19.4.)
(v letech 1943 a 2038 mu Velikonoční neděle 25.4. nevadí - jedná se o aplikaci toho prvního if: "Je-li u = 25, d = 28, e = 6 a a > 10, pak u = 18, v = 4 a Velikonoční neděle připadá na 18. duben.")
Nevím v čem je mezi algoritmy rozpor. V mém algoritmu JPG je jasně napsáno, že pokud, cituji "připadne datum velikonoc později než na 25. dubna....".
Podle toho by se pak velikonoce dne 25.4.1954 a 25.4.2049 o týden dopředu neposouvaly, protože "později" znamená, že datum 25.4 je ještě platné datum pro velikonoce.
Na tu Gausovu metodu se musím podívat co je to zač. Školu jsem končil už v roce 1969 a už si dávno nepamatuji o co jde. Pokud se moje dlouhé vzorce dají takto jednoduše nahradit, pak celá debata zde měla význam a sám rád tu Gausovu metodu budu ve vzorcích u sebe také aplikovat (i v tom kalendáři, kde je délka mých vzorců na hranici povolené délky).
- tomasjedno
- Příspěvky: 6547
- Registrován: 11 říj 2008, 00:00
- Bydliště: ZZ9 Plural Z Alpha
Brozicek píše:...Nevím v čem je mezi algoritmy rozpor. V mém algoritmu JPG je jasně napsáno, že pokud, cituji "připadne datum velikonoc později než na 25. dubna....".
V tom JPG algoritmu je ta podmínka dost neprecizně formulovaná, stejně jako to "provedeme oba výpočty a vybereme ten, který vyhovuje" nebudí obzvláštní důvěru, jako by to psal novinář.
Oproti tomu ten algoritmus popsaný ve Wiki je výrazně precizněji formulován (dá se mu vytknout jen to, že test "Je-li u = 25, d = 28, e = 6 a a > 10" je zbytečně složitý, protože je-li u=25 a d=28, pak je nutně e=6 a tedy není třeba testovat e).
Tu podmínku "Je-li u = 25, d = 28, e = 6 a a > 10" si těžko vycucali z prstu, a přitom právě tou se oba algoritmy liší; právě ona ošetřuje ty dva posuny z neděle 25.4. na 18.4. v letech 1954 a 2049, a ty dva neposuny v letech 1943 a 2038 (kdy je také datum pondělka >25). A co jsem tak pátral po netu, tak v r. 1954 byly Velikonoce zdá se opravdu 18.4. V pondělí 19.4.1954 nevyšlo Rudé právo, zatímco v pondělí 26.4. ano.
Jak to bude doopravdy v r. 2049 těžko říct - třeba se řeckokatolická a římskokatolická církev dohodnou a budou úplně jindy
- tomasjedno
- Příspěvky: 6547
- Registrován: 11 říj 2008, 00:00
- Bydliště: ZZ9 Plural Z Alpha
http://kalendar.beda.cz/velikonoce.php
jsou data velikonoční neděle v 1954 a 2049 uváděna také s posunem o 1 týden, takže wikipedie a Tomasjedno vítězí. U sebe si vzorečky zkoriguji i pro tyto dva roky, abych svým potomkům "nezanechal v PC blud"
Tím můžeme diskusi uzavřít. Já se už zcela určitě nepřesvědčím, jak to v roce 2049 bude ve skutečnosti. Mladším přeji, aby se svět do té doby nezřítil díky neschopným vládám do záhuby, nebo aby nepřišel ten konec světa.
Dík za debatu.
Brozicek píše: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".
Předpokládám že tam vypadlo slovo "výhodu"?
Já vím, že je Qbasic nemoderní, ale nemůžu se nezastavit u porovnání velikostí aplikací a nároků, jen excel entní viewer má po nainstalování 80 mega a protože je to jen prohlížeč, nedovoluje měnit údaje v buňkách. Pro ten triviální výpočet je potřeba nainstalovat si "offis" což odhaduju na plné CD a dnes minimálně W XP.
Zatímco ten QB má 300 kB a běží i na 286 bootované z diskety, program zkompilovaný do standalone .exe ve verzi bez potřeby knihoven má 30 kB.
Čili na to, aby člověk naťukal 4 číslice a obdržel 2 číslice a osmiznakový řetězec, se sw nároky upgradovaly asi tak 500x.
Funguje to i v AVR, necelých 1200 bajtů, tedy zadávání i zobrazování pomocí terminálu na UART, když už by teda někdo měl tu úchylnou potřebu mít výpočet velikonoc v jednočipu. Bascom nedovoluje víc než tři parametry ve výrazu, takže rozepisování je trochu nepřehledné.
Kód: Vybrat vše
$regfile = "ATtiny2313.dat"
$crystal = 20000000
$baud = 19200
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Dim Rok As Integer
Dim Den As Integer
Dim X As Integer
Dim Y As Integer
Print Chr(12)
Input "rok:" , Rok
X = Rok Mod 19
Den = 19 * X : Den = Den + 24
Den = Den Mod 30
X = Rok Mod 4 : Y = Rok Mod 7
X = X * 2 : Y = Y * 4
X = X + 5 : X = X + Y
Y = 6 * Den : X = X + Y
Y = X Mod 7 : X = 22 + Den
Den = X + Y
If Den < 57 Then Goto Brezen
Den = Den - 7
Brezen:
If Den > 31 Then Goto Duben
Print Den ; "/03"
End
Duben:
Den = Den - 31
Print Den ; "/04"
End- Přílohy
-
m328PBdef.rar- (16.24 KiB) Staženo 42 x
O tom, kdy na mě přijde jaro, přeci nerozhoduje něco tak bezvýznamného, jako jestli je noc kratší než den a měsíční svit vydrží až do rána a v ponědlí se nejde do práce.
Snad měli větší reprodukční výnosy, když do toho ti mladí praštili najednou, ovšem z hlediska nízké dětské úmrtnosti je pro početí vhodnější Srpen, po žních.
Chápete někdo, proč se dožínky jmenují októbrfest, když říjen je o dva měsíce později???
(Nemusí mít platnou revizi.)
(Celkově budu raději, když se to obejde bez papírů.)
- tomasjedno
- Příspěvky: 6547
- Registrován: 11 říj 2008, 00:00
- Bydliště: ZZ9 Plural Z Alpha
Habesan píše:...Chápete někdo, proč se dožínky jmenují októbrfest, když říjen je o dva měsíce později???
Oktoberfest 2011: So 17.9.- 3.10.2011
Oktoberfest 2012: So 22.9.- 7.10.2012
http://www.oktoberfest.de
Ještě nějaký dotaz?