= 0) { $day += $days; while ($day > daysPerMonth($year, $month)) $day -= daysPerMonth($year, $month++); } else { $day += $days; while ($day <= 0) $day += daysPerMonth($year, $month--); } return(array($month, $day)); } function addMonths($year, $month, $months) { if ($months >= 0) { $month += $months; while ($month > 12) { $month -= 12; $year++; } } else { $month += $months; while ($month <= 0) { $month += 12; $year--; } } return(array($year, $month)); } function easterSunday($year) { $K = floor($year / 100); $h = floor((3 * $K + 3) / 4); $M = 15 + $h - floor((8 * $K + 13) / 25); $S = 2 - $h; $A = $year % 19; $B = floor($year/4); $D = (19* $A + $M) % 30; $R = floor($D / 29) + (floor($D / 28) - floor($D / 29)) * floor($A / 11); $OG = 21 + $D - $R; $SZ = 7 - (($year + $B + $S) % 7); $OE = 7 - (($OG - $SZ) % 7); return (addDays($year, 3, 1, ($OG + $OE) - 1)); } /* * Bundesweite gesetzliche Feiertage: * - Neujahr (1. Januar) * - Karfreitag (erster Freitag vor Ostern) * - Ostermontag (Ostersonntag ist der erste Sonntag nach dem ersten Vollmond nach der * Frühlings-Tagundnachtgleiche (Vernal Equinox). * - Maifeiertag, Tag der Arbeit (1. Mai) * - Christi Himmelfahrt (sechster Donnerstag nach Ostern) * - Pfingstmontag (siebter Montag nach Ostermontag) * - Tag der deutschen Einheit (3. Oktober) * - 1. Weihnachtstag (25. Dezember) * - 2. Weihnachtstag (26. Dezember) * * Gesetzliche Feiertage nur in einigen Bundesländern: * - Heilige Drei Könige (6. Januar; Baden-Württemberg, Bayern und Sachsen-Anhalt) * - Fronleichnam (zweiter Donnerstag nach Pfingsten; Baden-Württemberg, Bayern, Hessen, * Nordrhein-Westfalen, Rheinland-Pfalz, im Saarland und in einigen Gemeinden in * Sachsen und Thüringen) * - Mariä Himmelfahrt (15. August; Bayern, in Gemeinden mit überwiegend katholischer * Bevölkerung und im Saarland) * - Reformationstag (31. Oktober; Brandenburg, Mecklenburg-Vorpommern, Sachsen, * Sachsen-Anhalt, Thüringen) * - Allerheiligen (1. November; Baden-Württemberg, Bayern, Nordrhein-Westfalen, * Rheinland Pfalz, Saarland) * - Buß- und Bettag (zweiter Mittwoch vor dem ersten Advent; Sachsen) * * Quelle: http://www.kalenderlexikon.de/Kalender/FeierGesetz.htm * */ function feiertag($year, $month, $day) { if ($month == 1 && $day == 1) return('Neujahr'); // if ($month == 1 && $day == 6) return(' Heilige Drei Könige'); if ($month == 5 && $day == 1) return('Maifeiertag'); if ($month == 8 && $day == 15) return(' Mariä Himmelfahrt'); if ($year > 1989 && $month == 10 && $day == 3) return('Tag der deutschen Einheit'); // if ($month == 10 && $day == 31) return(' Reformationstag'); // if ($month == 11 && $day == 1) return(' Allerheiligen'); if ($month == 12 && $day == 25) return('1. Weihnachtstag'); if ($month == 12 && $day == 26) return('2. Weihnachtstag'); // if ($month == 11) // { // $fourthAdvent = 24 - date ("w", mktime(0, 0, 0, 12, 24, $year)); // if (day == (fourthAdvent - 2)) return( ' Buß- und Bettag'); // } if ($month == 3 || $month == 4 || $month == 5 || $month == 6) { $easter = easterSunday($year); if ($month == $easter[0] && $day == $easter[1]) return('Ostersonntag'); $tempDate = addDays($year, $easter[0], $easter[1], -2); if ($month == $tempDate[0] && $day == $tempDate[1]) return('Karfreitag'); $tempDate = addDays($year, $easter[0], $easter[1], 1); if ($month == $tempDate[0] && $day == $tempDate[1]) return('Ostermontag'); $tempDate = addDays($year, $easter[0], $easter[1], 39); if ($month == $tempDate[0] && $day == $tempDate[1]) return('Himmelfahrt'); $tempDate = addDays($year, $easter[0], $easter[1], 50); if ($month == $tempDate[0] && $day == $tempDate[1]) return('Pfingstmontag'); $tempDate = addDays($year, $easter[0], $easter[1], 60); if ($month == $tempDate[0] && $day == $tempDate[1]) return(' Fronleichnam'); } // if (date ("w", mktime(0, 0, 0, $month, $day, $year)) == 6) // return ('Samstag'); if (date ("w", mktime(0, 0, 0, $month, $day, $year)) == 0) return ('Sonntag'); return(''); } function addDaysComplete($year, $month, $day, $days) { if ($days >= 0) { $day += $days; while ($day > daysPerMonth($year, $month)) { $day -= daysPerMonth($year, $month++); if ($month == 13) { $month = 1; $year++; } } } else { $day += $days; while ($day <= 0) { $day += daysPerMonth($year, $month--); if ($month == 0) { $month = 12; $year--; } } } return(array($year, $month, $day)); } function getMonthAnchorLinks() { $ret = ""; $ret .= "Jan.  "; $ret .= "Feb.  "; $ret .= "Mär.  "; $ret .= "Apr.  "; $ret .= "Mai  "; $ret .= "Jun  "; $ret .= "Jul.  "; $ret .= "Aug.  "; $ret .= "Sep.  "; $ret .= "Okt.  "; $ret .= "Nov.  "; $ret .= "Dez.  "; return $ret; } //include_once("../include/dbglobal.inc.php"); //$dateArr = array(2004, 1, 0); //do { // $dateArr = addDaysComplete($dateArr[0], $dateArr[1], $dateArr[2], 1); // $dayName = feiertag($dateArr[0], $dateArr[1], $dateArr[2]); // if ($dayName != "" && substr($dayName, 0, 1) != " ") { // insertStmt("publicholiday", array("ph_year", $dateArr[0], "ph_month", $dateArr[1], "ph_day", $dateArr[2], "ph_name", $dayName)); // } //} while ($dateArr[0] <= 2012); ?>