Autor | Zpráva | ||
---|---|---|---|
MacDionisio Profil * |
Mám takový menší problém. Potřeboval bych zjistit na začátku každého roku, kdy nastanou velikonoce.
Poněvadž je to pravděpodobné dle pravidla že velikoční neděle je po prvním jarním úplňku, pletu-li se tak mne prosím opravte. Je možné to dle PHP nějak zjistit ? :) |
||
Alphard Profil |
#2 · Zasláno: 14. 2. 2008, 21:43:55
|
||
Joker Profil |
#3 · Zasláno: 14. 2. 2008, 22:30:17
Připomínám, že různé církve mají různé datum Velikonoc.
Budu předpokládat, že se myslí katolické Velikonoce (podle kterých se určují i Velikonoce jako státní svátek) Tady je funkce z mého Javascriptového kalendáře, která má vstupní parametr rok z rozmezí 1900-2099 a vrací pořadí dne v tom roce, na který připadá Velikonoční neděle. Sice je to Javascript, ale převod do PHP by měl být hračka. Dodám, že ta moje verze je trochu "osekaná", klasický výpočet ještě pokračuje dál a určí datum (den a měsíc), pro účely toho mého kalendáře mi stačí pořadí dne v roce. Funkce prestupny() je snad jasná, určí, zda je/není daný rok přestupný. Pokud by bylo potřeba to rozšířit o další staletí, výpočet je stejný, akorát je potřeba použít jiné hodnoty m a n. Na webu lze najít hodnoty pro různá staletí. function velikonoce(rok){ // Vrací pořadí dne v daném roce, na který připadá Velikonoční neděle if((rok < 1900) || (rok > 2099)) return(-1); // funguje jen 1900 - 2099 // m, n jsou konstanty platné 1900-2099 var m = 24; var n = 5; var a = rok % 19; var b = rok % 4; var c = rok % 7; var d = ((19 * a) + m) % 30; var e = ((2*b) + (4*c) + (6*d) + n) % 7; var v = 81 + d + e; // d+e udává, za kolik dní je Velikonoční neděle od 22.3. což je 81. den v nepřestupném roce if((v>115) || ((v==115) && (d==28) && (e==6) && (a > 10))) v = v-7; // Pokud vyjde po 25.4. (115. den) anebo přesně, ale s uvedenými hodnotami parametrů, je to ve skutečnosti o týden dřív if(prestupny(rok)) v++; // zohledníme případný přestupný rok return(v); } |
||
MacDionisio Profil * |
#4 · Zasláno: 14. 2. 2008, 23:28:28
Díky moc za náměty ;)
|
||
jogurt Profil |
#5 · Zasláno: 14. 2. 2008, 23:38:24
Asi vas ted hodne zklamu, ale v PHP je na to funkce easter_date (popripade easter_days)
|
||
MacDionisio Profil * |
#6 · Zasláno: 15. 2. 2008, 00:19:09
jogurt
Díky .. nejlepší možnost ;) Tady je vidět ta síla "skupiny" :) každý zná něco jiného :) Díky všem ;) |
||
Časová prodleva: 13 let
|
0