PHP - Calculate Weekends and Holidays in PHP


/ Published in: PHP
Save to your folder(s)

Der folgende Codeschnipsel enthält keinerlei Überprüfungen der übergebenen Parameter, diese sollten für den produktiven Einsatz noch nachgepflegt werden.
Wie man sieht, ist die Berechnung von Wochendenden und Feiertagen recht einfach. Diese Berechnung kann man sicherlich auch schnell in anderen Programmiersprachen abbilden.


Copy this code and paste it in your HTML
  1. function freierTag($tag, $monat, $jahr) {
  2.  
  3. // Parameter in richtiges Format bringen
  4. if(strlen($tag) == 1) {
  5. $tag = "0$tag";
  6. }
  7. if(strlen($monat) == 1) {
  8. $monat = "0$monat";
  9. }
  10.  
  11. // Wochentag berechnen
  12. $datum = getdate(mktime(0, 0, 0, $monat, $tag, $jahr));
  13. $wochentag = $datum['wday'];
  14.  
  15. // Prüfen, ob Wochenende
  16. if($wochentag == 0 || $wochentag == 6) {
  17. return true;
  18. }
  19.  
  20. // Feste Feiertage werden nach dem Schema ddmm eingetragen
  21. $feiertage[] = "0101"; // Neujahrstag
  22. $feiertage[] = "0105"; // Tag der Arbeit
  23. $feiertage[] = "0310"; // Tag der Deutschen Einheit
  24. $feiertage[] = "2512"; // Erster Weihnachtstag
  25. $feiertage[] = "2612"; // Zweiter Weihnachtstag
  26.  
  27. // Bewegliche Feiertage berechnen
  28. $tage = 60 * 60 * 24;
  29. $ostersonntag = easter_date($jahr);
  30. $feiertage[] = date("dm", $ostersonntag - 2 * $tage); // Karfreitag
  31. $feiertage[] = date("dm", $ostersonntag + 1 * $tage); // Ostermontag
  32. $feiertage[] = date("dm", $ostersonntag + 39 * $tage); // Himmelfahrt
  33. $feiertage[] = date("dm", $ostersonntag + 50 * $tage); // Pfingstmontag
  34.  
  35. // Prüfen, ob Feiertag
  36. $code = $tag.$monat;
  37. if(in_array($code, $feiertage)) {
  38. return true;
  39. } else {
  40. return false;
  41. }
  42. }

URL: http://www.patrick-gotthard.de/5680/wochendenden-und-feiertage-mit-php-berechnen

Report this snippet


Comments

RSS Icon Subscribe to comments

You need to login to post a comment.