Hallo,
ich habe vor einigen Jahren eine mit PHP realisierte Anwesenheitsliste von meinem Vorgänger übernommen. Mir ist nun aufgefallen, dass die beweglichen Feiertage wie Ostern und Pfingsten nicht mehr entsprechend in der eingebauten Kalenderfunktion angezeigt werden, die festen Feiertage funktionieren. Ich habe leider nicht das erforderliche Know-How um hier Korrekturen vorzunehmen und hoffe jemand von euch kann mir hier helfen.
Die entsprechende Funktion scheine ich gefunden zu haben:
Kann mir hier jemand aus der Ferne helfen? Ich bin mit meinem Latein am Ende
Viele Grüße
Erik
ich habe vor einigen Jahren eine mit PHP realisierte Anwesenheitsliste von meinem Vorgänger übernommen. Mir ist nun aufgefallen, dass die beweglichen Feiertage wie Ostern und Pfingsten nicht mehr entsprechend in der eingebauten Kalenderfunktion angezeigt werden, die festen Feiertage funktionieren. Ich habe leider nicht das erforderliche Know-How um hier Korrekturen vorzunehmen und hoffe jemand von euch kann mir hier helfen.
Die entsprechende Funktion scheine ich gefunden zu haben:
PHP-Code:
<?php
function feiertag ($jahr,$monat,$tag,$wtag,$today) {
// Feiertage BERLIN !!!!!!!!!!!!!!!!!
// ==================================
// regelmäßige Feiertage
$IsFt = 0;
switch ($monat) {
case 1:
$IsFt = ($tag == 1);
break;
// case 2:
// case 3:
// case 4:
case 5:
$IsFt = ($tag == 1);
break;
// case 6:
// case 7:
// case 8:
// case 9:
case 10:
$IsFt = ($tag == 3);
break;
// case 11:
case 12:
$IsFt = ($tag == 25) || ($tag == 26);
break;
}
if (!$IsFt // ist schon Feiertag
&& ($wtag != 3) // Dienstag und Mittwoch entfällt
&& ($wtag != 4)
&& (3 <= $monat) // relevante Monate für BERLIN
&& ($monat <= 6) // ======
&& (2000 <= $jahr) // Güligkeit der Ostertabelle
&& ($jahr <= 2035)
) {
// http://www.ibiblio.org/ais/osterndt.htm
// Beginnt mit 2000 und endet mit 2035. Das sollte ausreichend sein.
$ListeOstern =array('04-23',
'04-15','03-31','04-20','04-11','03-27',
'04-16','04-08','03-23','04-12','04-04',
'04-24','04-08','03-31','04-20','04-05',
'03-27','04-16','04-01','04-21','04-12',
'04-04','04-17','04-09','03-31','04-20',
'04-05','03-28','04-16','04-01','04-21',
'04-13','03-28','04-17','04-09','03-25');
$ostern = $ListeOstern[$jahr - 2000];
$om = substr($ostern,0,2);
$od = substr($ostern,3,2);
$ostern = mktime(0,0,0,$om,$od,$jahr,0);
// Karfreitag
$IsFt = $ostern-2*86400+3600 == $today; //20161026 SB: +3600 wegen der Umstellung von Sommerzeit auf Winterzeit hinzugefügt
if ($IsFt) return($IsFt);
// Ostermontag
$IsFt = $ostern+1*86400+3600 == $today; //20161026 SB: +3600 wegen der Umstellung von Sommerzeit auf Winterzeit hinzugefügt
if ($IsFt) return($IsFt);
// Pfingstmontag
$IsFt = $ostern+(7*7+1)*86400+3600 == $today; //20161026: +3600 wegen der Umstellung von Sommerzeit auf Winterzeit hinzugefügt
if ($IsFt) return($IsFt);
// Himmelfahrt
$IsFt = $ostern+(5*7+4)*86400+3600 == $today; //20161026: +3600 wegen der Umstellung von Sommerzeit auf Winterzeit hinzugefügt
if ($IsFt) return($IsFt);
}
return($IsFt); }
Viele Grüße
Erik
Kommentar