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
http://encyklopedie.seznam.cz/heslo/196207-vypocet-data-velikonoc
Joker
Profil
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 *
Díky moc za náměty ;)
jogurt
Profil
Asi vas ted hodne zklamu, ale v PHP je na to funkce easter_date (popripade easter_days)
MacDionisio
Profil *
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 ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: