Kdo má dnes svátek?
Znáte to, na spoustě stránek je někde v hlavičce zmíněno, kdo má dnes svátek. A mně se to stalo právě dnes, že jsem se octnul před úkolem napsat PHP funkci vracející jméno, které je (dnes) v kalendáři.
Po dlouhém snažení jsem se dogooglil na článek na Intervalu řešící tento problém. Tam autor článku ukazoval řešení přes databázi, no po tom jsem netoužil, neb mi to v mém případě přišlo jako „jít na vrabce s kulometem“, či jak praví to přísloví. Ani řešení přes více polí, nebo přes více-rozměrové pole, které jsem zahlédl na jích webech, se mi nelíbily.
Z článku jsem si alespoň půjčil seznam jmen a po pár
kliknutích v PSPadu mi z původní řady insert-ů vznikla krásná
formulace array('Nový rok', ...
, a mohl jsem začít psát
samotné „vytahování z pole“.
Jen bych podotknul, že převod do pole jsem prováděl s tušením, že funkce date umí vracet
něco-jako číslo dne v roce. A taky že ano, funkce date
to
umí. A tedy po pár minutách vznikla funkce svatek_ma
, která
navíc počítá i s problémem přestupného roku.
function svatek_ma() {
$svatky = array('Nový rok','Karina','Radmila','Diana'...);
$prestupny = date("L");
$den = date("z");
if($den<59) return $svatky[$den];
else return $svatky[$den + !$prestupny];
}
Vysvětlivky
date("L")
vrací 1 nebo 0 podle toho, zda je rok přestupný nebo nedate("z")
vrací číslo dne v roce (0–365)- podmínka slovně: pokud ještě nebylo letos 28. února, vyhoď jméno z pole na pozici čísla dne, jinak vyhoď jméno z pole na pozici čísla dne+1 anebo +0, podle toho, jestli je letošek přestupný.
Ke stažení:
Doplnění: Později rozšířením tohoto skritpu vznikla online aplikace Svátek: Kdo má dnes svátek?
Komentáře (3)
k formuláři
RSS kanál komentářů
29.12. 2005 — 1:07
Joha..narazil sem na dve chybky na tomhle blogu..
30.12. 2005 — 13:59
Zdravím tě,
1.1. 2006 — 12:52
mno uz funguje i feed..
Přidat komentář