Feiertage über PHP ermitteln
Aus ITwiki
Version vom 1. Juni 2011, 09:22 Uhr von Franky (Diskussion | Beiträge) (Die Seite wurde neu angelegt: Hier ist eine Funktion zum Ermitteln der Feiertage: /** * Ermittle Feiertage, Arbeitstage und Wochenenden von einem Datum * * @param string $datum im Format YYYY...)
Hier ist eine Funktion zum Ermitteln der Feiertage:
/**
* Ermittle Feiertage, Arbeitstage und Wochenenden von einem Datum * * @param string $datum im Format YYYY-MM-DD * @param string $bundesland * @return string */
function feiertag ($datum,$bundesland=) {
$datum = explode("-", $datum);
$datum[1] = str_pad($datum[1], 2, "0", STR_PAD_LEFT); $datum[2] = str_pad($datum[2], 2, "0", STR_PAD_LEFT);
if (!checkdate($datum[1], $datum[2], $datum[0])) return false;
$datum_arr = getdate(mktime(0,0,0,$datum[1],$datum[2],$datum[0]));
$easter_d = date("d", easter_date($datum[0])); $easter_m = date("m", easter_date($datum[0]));
$status = 'Arbeitstag'; if ($datum_arr['wday'] == 0 || $datum_arr['wday'] == 6) $status = 'Wochenende';
if ($datum[1].$datum[2] == '0101') { return 'Neujahr'; } elseif ($datum[1].$datum[2] == '0106') { return 'Heilige Drei Könige'; } elseif ($datum[1].$datum[2] == '0319' && ($bundesland == 'k' || $bundesland == 'st' || $bundesland == 't' || $bundesland == 'v')) { return 'Josef'; } elseif ($datum[1].$datum[2] == $easter_m.$easter_d) { return 'Ostersonntag'; } elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+1,$datum[0]))) { return 'Ostermontag'; } elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+39,$datum[0]))) { return 'Christi Himmelfahrt'; } elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+49,$datum[0]))) { return 'Pfingstsonntag'; } elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+50,$datum[0]))) { return 'Pfingstmontag'; } elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+60,$datum[0]))) { return 'Fronleichnam'; } elseif ($datum[1].$datum[2] == '0501') { return 'Erster Mai'; } elseif ($datum[1].$datum[2] == '0504' && $bundesland == 'ooe') { return 'Florian'; } elseif ($datum[1].$datum[2] == '0815') { return 'Mariä Himmelfahrt'; } elseif ($datum[1].$datum[2] == '0924' && $bundesland == 's') { return 'Rupertitag'; } elseif ($datum[1].$datum[2] == '1010' && $bundesland == 'k') { return 'Tag der Volksabstimmung'; } elseif ($datum[1].$datum[2] == '1026') { return 'Nationalfeiertag'; } elseif ($datum[1].$datum[2] == '1101') { return 'Allerheiligen'; } elseif ($datum[1].$datum[2] == '1111' && $bundesland == 'b') { return 'Martini'; } elseif ($datum[1].$datum[2] == '1115' && ($bundesland == 'noe' || $bundesland == 'w')) { return 'Leopoldi'; } elseif ($datum[1].$datum[2] == '1208') { return 'Mariä Empfängnis'; } elseif ($datum[1].$datum[2] == '1224') { return 'Heiliger Abend'; } elseif ($datum[1].$datum[2] == '1225') { return 'Christtag'; } elseif ($datum[1].$datum[2] == '1226') { return 'Stefanitag'; } else { return $status; }
}