"; echo ""; ?> Kalender-Script "; echo ""; # Sonntag $c_so = "#ff0000"; # Samstag $c_sa = "#bb0000"; # Werktag $c_wk = "#000000"; # heute (Hintergrundfarbe) $c_heute = "#AAAAFF"; # normal (Hintergrundfarbe) $c_normal = "#E5E5E5"; $tage = array("0", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"); $monate = array(1=>"Januar", 2=>"Februar", 3=>"März", 4=>"April", 5=>"Mai", 6=>"Juni", 7=>"Juli", 8=>"August", 9=>"September", 10=>"Oktober", 11=>"November", 12=>"Dezember"); $anz_tag_monat = array(0,31,28,31,30,31,30,31,31,30,31,30,31); ## Variablen aus Browser-Zeile $year_g=$_GET['year']; $month_g=$_GET['month']; # Zähler Feiertage $ft = 0; # Umlaute # https://www.designerinaction.de/tipps-tricks/web-development/html-umlaute-sonderzeichen/ # https://www.php.net/manual/de/function.date.php # https://www.schattenbaum.net/php/datum2.php #echo "Wochentag: "; #echo date("l"); #echo "
"; #echo "Tag der Woche: "; #echo date("w"); #echo "
"; #echo "Monat: "; #echo date("m"); #echo "
"; #echo "Monat: "; $monat_heute = date("m"); $monat_heute = intval($monat_heute); #echo $monat_heute; #echo "
"; $monat = date("m"); $monat = intval($monat); if (isset($month_g)) { $month = $month_g; } else { $month = $monat; } #echo "$monat"; #echo "
"; #echo "Jahr: "; if (isset($year_g)) { $year = $year_g; } else { $year = date("Y"); } $year_heute = date("Y"); $year_heute = intval($year_heute); #echo "$year_heute"; #echo "
"; #echo "Tag im Monat: "; $tag_heute = date("d"); $tag_heute = intval($tag_heute) ; #echo $tag_heute; #echo "
"; #echo "
"; # Nur ein Beispiel #echo "1. August 2024 ist ein " . date("l", mktime(0, 0, 0, 8, 1, 2024)); #echo "
"; #echo "1. August 2024 ist ein " . date("w", mktime(0, 0, 0, date("m"), 1, date("Y"))); #echo "
"; # An welchem Wochentag beginnt der Monat? #$erster_tag_monat = date("w", mktime(0, 0, 0, date("m"), 1, date("Y"))); $erster_tag_monat = date("w", mktime(0, 0, 0, date("m"), 1, 2024)); $erster_tag_monat = intval($erster_tag_monat); #echo $erster_tag_monat; #echo "
"; #echo "
"; # aktueller Wochentag $var_wtag = date("w"); #echo "$tage[$var_wtag]"; #echo "
"; # Test vom array #echo "$tage[1]"; #echo "
"; #echo "$monate[2]"; #echo "
"; #echo "$anz_tag_monat[$monat]"; #echo "
"; #echo "Schaltjahr: "; #echo date('L'); #echo "
"; #echo "Jahr: "; #echo "$year"; #echo "
"; #echo "Monat: "; #echo "$month"; #echo "
"; # An welchem Wochentag beginnt der Monat? $erster_tag_monat = date("w", mktime(0, 0, 0, $month, 1, $year)); $erster_tag_monat = intval($erster_tag_monat); #echo "erster Tag im Monat: "; #echo "$erster_tag_monat"; #echo "
"; #echo "Schaltjahr: "; $schaltjahr = date('L', mktime(0, 0, 0, $month, 1, $year)); #echo "$schaltjahr"; #echo "
"; #echo "$month"; #echo "
"; #echo "$monat_heute"; #echo "
"; #echo "
"; ######################################################## # print "

"; echo ""; echo ""; echo ""; echo "
"; #echo ""; # Breite erzwingen echo ""; echo ""; $year_next = $year; $month_next = $month + 1; if ($month_next > 12) { $month_next = 1; $year_next++; } echo ""; echo ""; #leere Zeile echo ""; if($erster!=1){ if($erster==0){$erster=7;} echo ""; for($i=0;$i<$erster-1;$i++){echo "";} } echo ""; echo ""; #leere Zeile echo ""; if($erster!=1){ if($erster==0){$erster=7;} echo ""; for($i=0;$i<$erster-1;$i++){echo "";} } echo ""; # erste Zeile $i = 1; echo ""; # Ist der erste Tag im Monat ein Sonntag? if ($erster_tag_monat == 0) { $c_back = $c_normal; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; if ($i == $tag_heute && $month == $monat_heute && $year == $year_heute){ $c_back = $c_heute;} else {$c_back = $c_normal;} echo ""; $i++; } else { for($wd=1;7>=$wd;$wd++) { if ($wd >= $erster_tag_monat) { if ($wd <= 5) # Montag bis Freitag { if ($i == $tag_heute && $month == $monat_heute && $year == $year_heute){ $c_back = $c_heute;} else {$c_back = $c_normal;} $command = "frei"; $frei = Feiertage_calc($year, $month, $command, $i, $c_wk); echo ""; } if ($wd == 6) # Samstag { if ($i == $tag_heute && $month == $monat_heute && $year == $year_heute){ $c_back = $c_heute;} else {$c_back = $c_normal;} $command = "frei"; $frei = Feiertage_calc($year, $month, $command, $i, $c_sa); echo ""; } if ($wd == 7) # Sonntag { if ($i == $tag_heute && $month == $monat_heute && $year == $year_heute){ $c_back = $c_heute;} else {$c_back = $c_normal;} echo ""; } $i++; } else { echo ""; } } } echo ""; # Februar: 28 oder 29 Tage if ($month == 2 && $schaltjahr == 1) { $anzahl_tage = 29; } else { $anzahl_tage = $anz_tag_monat[$month]; } for($i=$i;$i<=$anzahl_tage;$i=$i) { $c_back = $c_normal; echo ""; for($wd=1;7>=$wd;$wd++) { if ($wd <= 5 && $anzahl_tage >= $i) # Montag bis Freitag { if ($i == $tag_heute && $month == $monat_heute && $year == $year_heute){ $c_back = $c_heute;} else {$c_back = $c_normal;} $command = "frei"; $frei = Feiertage_calc($year, $month, $command, $i, $c_wk); echo ""; } if ($wd == 6 && $anzahl_tage >= $i) # Samstag { if ($i == $tag_heute && $month == $monat_heute && $year == $year_heute){ $c_back = $c_heute;} else {$c_back = $c_normal;} $command = "frei"; $frei = Feiertage_calc($year, $month, $command, $i, $c_sa); echo ""; } if ($wd == 7 && $anzahl_tage >= $i) # Sonntag { if ($i == $tag_heute && $month == $monat_heute && $year == $year_heute){ $c_back = $c_heute;} else {$c_back = $c_normal;} echo ""; } if ($anzahl_tage < $i) { $c_back = $c_normal; echo ""; } $i++; } echo ""; } echo "
 "; $year_voriger = $year; $month_voriger = $month - 1; if ($month_voriger == 0) { $month_voriger = 12; $year_voriger--; } echo ""; echo ""; #echo "$monate[$monat]"; echo "$monate[$month]"; echo " "; #echo date("Y"); echo "$year"; echo ""; #echo ""; echo "  
  Mo     Di     Mi     Do     Fr     Sa     So  
      $i$i$i$i 
$i$i$i 
"; # Feiertage berechnen $command = "Liste"; Feiertage_calc($year, $month, $command, $i, $frei); echo "
"; echo ""; echo ""; ######################################################## ######################################################## # Feiertage berechnen # https://www.timeanddate.de/kalender/ostern-datum-berechnen function Feiertage_calc($year, $month, $command, $i, $frei) { #echo "
"; $Neujahr = date("d.m.Y", mktime(0, 0, 0, 1, 1, $year));; #echo "Neujahr: $Neujahr
"; $Dreikoenig = date("d.m.Y", mktime(0, 0, 0, 1, 6, $year)); #echo "Heilige Drei Koenige: $Dreikoenig
"; $OS = date("d.m.Y", easter_date($year)); $Rosenmontag = date("d.m.Y", easter_date($year) - (48 * 3600 * 24)); $Faschingsdienstag = date("d.m.Y", easter_date($year) - (47 * 3600 * 24)); $Aschermittwoch = date("d.m.Y", easter_date($year) - (46 * 3600 * 24)); $Tag_Rosenmontag = date("w", easter_date($year) - (48 * 3600 * 24)); if ($Tag_Rosenmontag == 0){ $Rosenmontag = date("d.m.Y", easter_date($year) - (47 * 3600 * 24)); $Faschingsdienstag = date("d.m.Y", easter_date($year) - (46 * 3600 * 24)); $Aschermittwoch = date("d.m.Y", easter_date($year) - (45 * 3600 * 24)); } #echo "Rosenmontag: $Rosenmontag
"; #echo "Faschingsdienstag: $Faschingsdienstag
"; #echo "Aschermittwoch: $Aschermittwoch
"; $Palmsonntag = date("d.m.Y", easter_date($year) - (7 * 3600 * 24)); #echo "Palmsonntag: $Palmsonntag
"; $Gruendonnerstag = date("d.m.Y", easter_date($year) - (3 * 3600 * 24)); #echo "Gruendonnerstag: $Gruendonnerstag
"; $Karfreitag = date("d.m.Y", easter_date($year) - (2 * 3600 * 24)); #echo "Karfreitag: $Karfreitag
"; #echo "Ostersonntag: $OS
"; $OM = date("d.m.Y", easter_date($year) + (3600 * 24)); #echo "Ostermontag: $OM
"; $ChristiHimmelfahrt = date("d.m.Y", easter_date($year) + (39 * 3600 * 24)); #echo "Christi Himmelfahrt: $ChristiHimmelfahrt
"; $Pfingstsonntag = date("d.m.Y", easter_date($year) + (49 * 3600 * 24)); #echo "Pfingstsonntag: $Pfingstsonntag
"; $Pfingstmontag = date("d.m.Y", easter_date($year) + (50 * 3600 * 24)); #echo "Pfingstmontag: $Pfingstmontag
"; $Frohnleichnam = date("d.m.Y", easter_date($year) + (60 * 3600 * 24)); #echo "Frohnleichnam: $Frohnleichnam
 
"; # Mutscheltag # ? # Valentinstag $Valentinstag = date("d.m.Y", mktime(0, 0, 0, 2, 14, $year)); #echo "Valentinstag: $Valentinstag
"; # Tag der Arbeit $TagderArbeit = date("d.m.Y", mktime(0, 0, 0, 5, 1, $year)); #echo "Tag der Arbeit: $TagderArbeit
"; # Muttertag $Muttertag = strtotime("+2 sunday",mktime(0,0,0,5,1,$year)); $Muttertag = date("d.m.Y", $Muttertag); #echo "Muttertag: $Muttertag
"; # Siebenschlaefer $Siebenschlaefer = date("d.m.Y", mktime(0, 0, 0, 6, 27, $year)); #echo "Siebenschlaefer: $Siebenschlaefer
"; # Tag der deutschen Einheit $DeutscheEinheit = date("d.m.Y", mktime(0, 0, 0, 10, 3, $year)); #echo "Tag der deutschen Einheit: $DeutscheEinheit
"; # Erntedankfest $Erntedankfest = strtotime("+1 sunday",mktime(0,0,0,10,1,$year)); $Erntedankfest = date("d.m.Y", $Erntedankfest); #echo "Erntedankfest: $Erntedankfest
"; # Allerheiligen $Allerheiligen = date("d.m.Y", mktime(0, 0, 0, 11, 1, $year)); #echo "Allerheiligen: $Allerheiligen
"; # St. Martin $St_Martin = date("d.m.Y", mktime(0, 0, 0, 11, 11, $year)); #echo "St. Martin: $St_Martin
"; # Nikolaus $Nikolaus = date("d.m.Y", mktime(0, 0, 0, 12, 6, $year)); #echo "Nikolaus: $Nikolaus
"; # Maria Empfaengnis $Maria_Empfaengnis = date("d.m.Y", mktime(0, 0, 0, 12, 8, $year)); #echo "Maria Empfaengnis: $Maria_Empfaengnis
 
"; # Advent-Sonntage # https://www.schattenbaum.net/php/adventssonntage.php # https://www.walter-fendt.de/html5/ade/juliandate_de.htm # Volkstrauertag $Volkstrauertag = strtotime("+1 sunday",mktime(0,0,0,11,27,$year)); $Volkstrauertag = date("d.m.Y", $Volkstrauertag - (14 * 3600 * 24)); #echo "Volkstrauertag: $Volkstrauertag
"; # Totensonntag $Totensonntag = strtotime("+1 sunday",mktime(0,0,0,11,27,$year)); $Totensonntag = date("d.m.Y", $Totensonntag - (7 * 3600 * 24)); #echo "Totensonntag: $Totensonntag
"; # Buß- und Bettag $Buss_Bettag = strtotime("+4 sunday",mktime(0,0,0,11,27,$year)); $Buss_Bettag = date("d.m.Y", $Buss_Bettag - (32 * 3600 * 24)); #echo "Buss und Bettag: $Buss_Bettag
"; $erster_advent = strtotime("+1 sunday",mktime(0,0,0,11,27,$year)); $erster_advent = date("d.m.Y", $erster_advent); #echo "erster Advent: $erster_advent
"; $zweiter_advent = strtotime("+2 sunday",mktime(0,0,0,11,27,$year)); $zweiter_advent = date("d.m.Y", $zweiter_advent); #echo "zweiter Advent: $zweiter_advent
"; $dritter_advent = strtotime("+3 sunday",mktime(0,0,0,11,27,$year)); $dritter_advent = date("d.m.Y", $dritter_advent); #echo "dritter Advent: $dritter_advent
"; $vierter_advent = strtotime("+4 sunday",mktime(0,0,0,11,27,$year)); $vierter_advent = date("d.m.Y", $vierter_advent); #echo "vierter Advent: $vierter_advent
"; $HeiligerAbend = date("d.m.Y", mktime(0, 0, 0, 12, 24, $year));; #echo "Heiliger Abend: $HeiligerAbend
"; $ErsterWeihn = date("d.m.Y", mktime(0, 0, 0, 12, 25, $year));; #echo "1. Weihnachtsfeiertag: $ErsterWeihn
"; $ZweiterWeihn = date("d.m.Y", mktime(0, 0, 0, 12, 26, $year));; #echo "2. Weihnachtsfeiertag: $ZweiterWeihn
"; $Silvester = date("d.m.Y", mktime(0, 0, 0, 12, 31, $year));; #echo "Silvester: $Silvester

"; # Sommerzeit: Beginn und Ende $sz_beginn = strtotime("last Sunday",mktime(0,0,0,4,1,$year)); $sz_beginn = date("d.m.Y", $sz_beginn); #echo "Sommerzeit Beginn: $sz_beginn
"; $sz_ende = strtotime("last Sunday",mktime(0,0,0,11,1,$year)); $sz_ende = date("d.m.Y", $sz_ende); #echo "Sommerzeit Ende: $sz_ende

"; // Berechnung der Jahreszeitenanfänge in Julianischen Tagen # 2000 ist das tropische Jahr # https://de.wikipedia.org/wiki/Umrechnung_zwischen_julianischem_Datum_und_gregorianischem_Kalender#Vorhandene_Funktionen_auf_Computersystemen $Y = ($year - 2000) / 1000; $Fruehlingsanfang = 2451623.80984 + 365242.37404*$Y + 0.05169*$Y*$Y - 0.00411*$Y*$Y*$Y - 0.00057*$Y*$Y*$Y*$Y; $Sommeranfang = 2451716.56767 + 365241.62603*$Y + 0.00325*$Y*$Y + 0.00888*$Y*$Y*$Y - 0.0003*$Y*$Y*$Y*$Y; $Herbstanfang = 2451810.21715 + 365242.01767*$Y - 0.11575*$Y*$Y + 0.00337*$Y*$Y*$Y + 0.00078*$Y*$Y*$Y*$Y; $Winteranfang = 2451900.05952 + 365242.74049*$Y - 0.06223*$Y*$Y - 0.00823*$Y*$Y*$Y + 0.00032*$Y*$Y*$Y*$Y; # Umwandeln in Sekunden seit 01.01.1970 $Fruehlingsanfang = ($Fruehlingsanfang - 2440587.5) * 60 * 60 * 24; $Fruehlingsanfang = date("d.m.Y", $Fruehlingsanfang); $Sommeranfang = ($Sommeranfang - 2440587.5) * 60 * 60 * 24; $Sommeranfang = date("d.m.Y", $Sommeranfang); $Herbstanfang = ($Herbstanfang - 2440587.5) * 60 * 60 * 24; $Herbstanfang = date("d.m.Y", $Herbstanfang); $Winteranfang = ($Winteranfang - 2440587.5) * 60 * 60 * 24; $Winteranfang = date("d.m.Y", $Winteranfang); # Ausgabe #echo "Fruehlingsanfang = $Fruehlingsanfang
"; #echo "Sommeranfang = $Sommeranfang
"; #echo "Herbstanfang = $Herbstanfang
"; #echo "Winteranfang = $Winteranfang

"; # Datum, was_fuer_ein_Tag, Farbe # #000000 -> kein Feiertag # #ff0000 -> Feiertag $Feiertage = array( $Neujahr, "Neujahr", "#ff0000", $Dreikoenig, "Heilige Drei Könige", "#ff0000", $Valentinstag, "Valentinstag", "#000000", $Rosenmontag, "Rosenmontag", "#000000", $Faschingsdienstag, "Faschingsdienstag", "#000000", $Aschermittwoch, "Aschermittwoch", "#000000", $Palmsonntag, "Palmsonntag", "#ff0000", $Gruendonnerstag, "Gründonnerstag", "#000000", $Karfreitag, "Karfreitag", "#ff0000", $OS, "Ostersonntag", "#ff0000", $OM, "Ostermontag", "#ff0000", $TagderArbeit, "Tag der Arbeit", "#ff0000", $Muttertag, "Muttertag", "#ff0000", $ChristiHimmelfahrt, "Christi Himmelfahrt", "#ff0000", $Pfingstsonntag, "Pfingstsonntag", "#ff0000", $Pfingstmontag, "Pfingstmontag", "#ff0000", $Frohnleichnam, "Frohnleichnam", "#ff0000", $Siebenschlaefer, "Siebenschläfer", "#000000", $DeutscheEinheit, "Tag der deutschen Einheit", "#ff0000", $Erntedankfest, "Erntedankfest", "#000000", $Allerheiligen, "Allerheiligen", "#ff0000", $St_Martin, "Martinstag", "#000000", $Nikolaus, "Nikolaus", "#000000", $Maria_Empfaengnis, "Maria Empfängnis", "#000000", $Volkstrauertag, "Volkstrauertag", "#ff0000", $Buss_Bettag, "Buß und Bettag", "#000000", $Totensonntag, "Totensonntag", "#ff0000", $erster_advent, "erster Advent", "#ff0000", $zweiter_advent, "zweiter Advent", "#ff0000", $dritter_advent, "dritter Advent", "#ff0000", $vierter_advent, "vierter Advent", "#ff0000", $HeiligerAbend, "HeiligerAbend", "#000000", $ErsterWeihn, "1. Weihnachtstag", "#ff0000", $ZweiterWeihn, "2. Weihnachtstag", "#ff0000", $Silvester, "Silvester", "#000000", $sz_beginn, "Sommerzeit Beginn", "#ff0000", $sz_ende, "Sommerzeit Ende", "#ff0000", $Fruehlingsanfang, "Frühlingsanfang", "#000000", $Sommeranfang, "Sommeranfang", "#000000", $Herbstanfang, "Herbstanfang", "#000000", $Winteranfang, "Winteranfang", "#000000", "dummy", "dummy", "dummy"); # Liste ausgeben if ($command == "Liste"){ $feiertag_count = 0; for ($j = 0; $j <= 200; $j++){ if ($Feiertage[$j] == "dummy") break; $monat = explode('.', $Feiertage[$j]); $monat = intval("$monat[1]"); if ($monat == $month){ $tag = explode('.', $Feiertage[$j]); $j++; $tag = intval("$tag[0]"); # echo "$tag"; # echo ". "; # echo "$Feiertage[$i]"; # echo "
"; $Feiertag_num[$feiertag_count] = $tag; $Feiertag_typ[$feiertag_count] = "$Feiertage[$j]"; $j++; $feiertag_count++; } } # Sortierte Ausgabe # echo "$feiertag_count
"; $feiertag_count--; for ($n=1; $n<=31; $n++){ for ($j=0; $j <= $feiertag_count; $j++){ if ($n == $Feiertag_num[$j]){ echo "$Feiertag_num[$j]"; echo ". "; echo "$Feiertag_typ[$j]
"; } } } } # Feiertag ja/nein ausgeben if ($command == "frei"){ # $feiertag_count = 0; for ($j = 0; $j <= 200; $j++){ if ($Feiertage[$j] == "dummy") break; $monat = explode('.', $Feiertage[$j]); $monat = intval("$monat[1]"); if ($monat == $month){ $tag = explode('.', $Feiertage[$j]); $j++; $tag = intval("$tag[0]"); # $Feiertag_num[$feiertag_count] = $tag; # $Feiertag_typ[$feiertag_count] = "$Feiertage[$j]"; $j++; if ($tag == $i){ if ($Feiertage[$j] == "#ff0000") $frei = "$Feiertage[$j]"; } # $feiertag_count++; } } } return $frei; } # Ende Feiertage berechnen ######################################################## ?>