Return to Snippet

Revision: 64511
at August 16, 2013 00:49 by satie83


Initial Code
function freierTag($tag, $monat, $jahr) {

   // Parameter in richtiges Format bringen
   if(strlen($tag) == 1) {
      $tag = "0$tag";
   }
   if(strlen($monat) == 1) {
      $monat = "0$monat";
   }

   // Wochentag berechnen
   $datum = getdate(mktime(0, 0, 0, $monat, $tag, $jahr));
   $wochentag = $datum['wday'];

   // Prüfen, ob Wochenende
   if($wochentag == 0 || $wochentag == 6) {
      return true;
   }

   // Feste Feiertage werden nach dem Schema ddmm eingetragen
   $feiertage[] = "0101"; // Neujahrstag
   $feiertage[] = "0105"; // Tag der Arbeit
   $feiertage[] = "0310"; // Tag der Deutschen Einheit
   $feiertage[] = "2512"; // Erster Weihnachtstag
   $feiertage[] = "2612"; // Zweiter Weihnachtstag

   // Bewegliche Feiertage berechnen
   $tage = 60 * 60 * 24;
   $ostersonntag = easter_date($jahr);
   $feiertage[] = date("dm", $ostersonntag - 2 * $tage);  // Karfreitag
   $feiertage[] = date("dm", $ostersonntag + 1 * $tage);  // Ostermontag
   $feiertage[] = date("dm", $ostersonntag + 39 * $tage); // Himmelfahrt
   $feiertage[] = date("dm", $ostersonntag + 50 * $tage); // Pfingstmontag

   // Prüfen, ob Feiertag
   $code = $tag.$monat;
   if(in_array($code, $feiertage)) {
      return true;
   } else {
      return false;
   }
}

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

Initial Description
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.

Initial Title
PHP - Calculate Weekends and Holidays in PHP

Initial Tags
php

Initial Language
PHP