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