Scripts

Feestdagen berekenen

Ik had de datum nodig van Pinksteren 2008, en dat viel merkwaardig genoeg zo 1-2-3 niet te vinden. Totdat ik op de in de code genoemde website stuitte. Daar is vermeld hoe je de datum van Pasen kunt berekenen, en daaruit weer andere 'variabele' feestdagen kunt afleiden. Leek me wel aardig om de 'uitgebreide formule' in een PHP-functie te bakken. De functie is in het voorbeeld benut. Let s.v.p. niet op de layout...

feestdagen-berekenen
[code]
<?php
function Datumfeestdag($jaar,$feestdag){
	// berekening conform http://members.lycos.nl/bouwzelf/paasdata.htm#calc
	$a = $jaar % 19;
	$b = intval($jaar/100);
	$c = $jaar % 100;
	$d = intval($b/4);
	$e = $b % 4;
	$g = intval((8 *  $b + 13) / 25);
	$theta = intval((11 * ($b - $d - $g) - 4) / 30);
	$phi = intval((7 * $a + $theta + 6) / 11);
	$psi = (19 * $a + ($b - $d - $g) + 15 -$phi) % 29;
	$i = intval($c / 4);
	$k = $c % 4;
	$lamda = ((32 + 2 * $e) + 2 * $i - $k - $psi) % 7;
	$maand = intval((90 + ($psi + $lamda)) / 25);
	$dag = (19 + ($psi + $lamda) + $maand) % 32;	
 	Switch( $feestdag ){	
		Case 0: $datumfeestdag = mktime (1,1,1,1,1,$jaar); break;            // Nieuwjaarsdag
		Case 1: $datumfeestdag = mktime (0,0,0,$maand,$dag-2,$jaar); break;  // Goede Vrijdag
		Case 2: $datumfeestdag = mktime (0,0,0,$maand,$dag,$jaar); break;    // 1e Paasdag
		Case 3: $datumfeestdag = mktime (0,0,0,$maand,$dag+1,$jaar); break;  // 2e Paasdag
		Case 4: $datumfeestdag = mktime (0,0,0,4,30,$jaar); break;           // Koninginnedag
		Case 5: $datumfeestdag = mktime (0,0,0,$maand,$dag+39,$jaar); break; // Hemelvaart
		Case 6: $datumfeestdag = mktime (0,0,0,$maand,$dag+49,$jaar); break; // 1e Pinksterdag
		Case 7: $datumfeestdag = mktime (0,0,0,$maand,$dag+50,$jaar); break; // 2e Pinksterdag
		Case 8: $datumfeestdag = mktime (0,0,0,12,25,$jaar); break;          // 1e Kerstdag
		Case 9: $datumfeestdag = mktime (0,0,0,12,26,$jaar); break;          // 2e Kerstdag
	}	
	Return Date("l d-m-Y",$datumfeestdag);
}
?>
[/code]

Reacties

0
Nog geen reacties.