Pääsiäinen + PHP

23.9.2010 KLO 11:54

Tuli eteen työn merkeissä selvittää pääsiäinen. Noh laiskahan olisi tehnyt huonon ohjelmointitavan mukaisesti taulukon, jossa olisi ollut vaikka kymmeneksi vuodeksi eteenpäin pääsiäiset. Itse päädyin tutkimaan miten sen voi määrittää ja miten se määräytyy. Löysinkin artikkelin Wikipediasta, jossa oli ohje pääsiäisen laskemiseen. Ajattelin helpottaa muita vastaavassa tilanteessa olevia ja julkaista pienen PHP pätkän, joka laskee pääsiäisen.

Funkkari ottaa arvoksi vuoden eli esimerkiksi 2010 ja tämän jälkeen palauttaa päivämäärän muodossa pp.kk.vvvv. Vuonna 2010 pääsiäinen oli 4. huhtikuuta. Kommentoikaa ja kertokaa jos koodissa on joku bugi tai härö.

<?php
function paasiainen($vuosi){
	$a = $vuosi % 19;
	$b = (int)($vuosi / 100);
	$c = $vuosi % 100;
	$d = (int)($b / 4);
	$e = $b % 4;
	$f = (int)(($b + 8) / 25);
	$g = (int)(($b - $f + 1) / 3);
	$h = (19 * $a + $b - $d - $g + 15) % 30;
	$i = (int)($c / 4);
	$k = $c % 4;
	$l = (32 + 2 * $e + 2 * $i - $h - $k) % 7;
	$m = (int)(($a + 11 * $h + 22 * $l) / 451);
	$n = (int)(($h + $l - 7 * $m + 114) / 31);
	$p = ($h + $l - 7 * $m + 114) % 31;

	$kuuk = $n;
	$paiv = $p + 1;
	$paasiainen = "$paiv.$kuuk.$vuosi";
	return $paasiainen;
}
?>

Keskustelu

Tämä artikkeli on tuotu vanhasta blogista ja niiden artikkelien kommentointi on uudistettu. Vanhaan artikkeliin voi kommentoida vain blogin kautta, kun taas uudemmissa näytetään myös Mastodonin kautta tulleet kommentit.

Kommentoi

Voit kommentoida artikkelia alla olevan lomakkeen avulla. Roskapostin välttämiseksi kysymme sähköpostin, mutta emme julkaise sitä. Tekstikenttä ottaa vastaan vain tekstiä ja kaikki muu siivotaan pois.

Toni Lahnalampi
10 vuotta sitten
Hei, Porttasin funktion javascriptille ja tuntuu toimivan hienosti. http://www.anvianet.fi/tola/juhlapaivat/
Marko
10 vuotta sitten
Moikka! Hienoa, että toimi ja hieno toteutus!
Mastodon
GitHub
RSS
1
1
7
3
3