2000) {$nextyear = $_GET["jahreskalender"]+1; $datumswert=$_GET["jahreskalender"]."0101 AND datum <= ".$nextyear.'0101'; $aktuellesJahr = $_GET["jahreskalender"]; $aktueller_Monat= 1;} else {die("falser Parameter für jahreskalender übergeben. Parameter ist optional");} }else{$datumswert="CURRENT_DATE()"; $aktuellesJahr = date('Y'); $aktueller_Monat= date('n');} //Berechnung der beweglichen Feiertage -------------------------------------------------------------------------------------------------- $nextyear = $aktuellesJahr+1; //if(easter_date(date("Y"))>mktime(1, 0, 0, date(n) , 1, date(Y))){$ostertimestamp=easter_date($aktuellesJahr);} else {$ostertimestamp=date("Y-m-d",easter_date($nextyear));} $aktueller_easterDate = mktime(1, 0, 0, 3, 21 + easter_days($aktuellesJahr), $aktuellesJahr); $easterDay = date('j', $aktueller_easterDate); $easterMonth = date('n', $aktueller_easterDate); $aktueller_ostersonntag = date("Y-m-d",$aktueller_easterDate); //da Ostern im März und im April stattfinden kann, berechnen wir einfach die Osterdaten für das aktuelle Jahr und das nächste. $aktueller_Karfreitag = date("Y-m-d",mktime(1, 0, 0, $easterMonth, $easterDay -2, $aktuellesJahr)); $aktueller_Ostermontag = date("Y-m-d",mktime(1, 0, 0, $easterMonth, $easterDay +1, $aktuellesJahr)); $aktueller_Rosenmontag = date("Y-m-d",mktime(1, 0, 0, $easterMonth, $easterDay -48, $aktuellesJahr)); $aktueller_Faschingsdienstag = date("Y-m-d",mktime(1, 0, 0, $easterMonth, $easterDay -47, $aktuellesJahr)); $aktueller_Aschermittwoch = date("Y-m-d",mktime(1, 0, 0, $easterMonth, $easterDay -46, $aktuellesJahr)); $aktueller_Christi_Himmelfahrt = date("Y-m-d",mktime(1, 0, 0, $easterMonth, $easterDay +39, $aktuellesJahr)); $aktueller_Pfingstsonntag = date("Y-m-d",mktime(1, 0, 0, $easterMonth, $easterDay +49, $aktuellesJahr)); $aktueller_Pfingstmontag = date("Y-m-d",mktime(1, 0, 0, $easterMonth, $easterDay +50, $aktuellesJahr)); $aktueller_Fronleichnam = date("Y-m-d",mktime(1, 0, 0, $easterMonth, $easterDay +60, $aktuellesJahr)); $next_easterDate = mktime(1, 0, 0, 3, 21 + easter_days($nextyear), $nextyear); $next_easterDay = date('j', $next_easterDate); $next_easterMonth = date('n', $next_easterDate); $next_ostersonntag = date("Y-m-d",$next_easterDate); //da Ostern im März und im April stattfinden kann, berechnen wir einfach die Osterdaten für das aktuelle Jahr und das nächste. $next_Karfreitag = date("Y-m-d", mktime(1, 0, 0, $next_easterMonth, $next_easterDay -2, $nextyear)); $next_Ostermontag = date("Y-m-d" ,mktime(1, 0, 0, $next_easterMonth, $next_easterDay +1, $nextyear)); $next_Rosenmontag = date("Y-m-d", mktime(1, 0, 0, $next_easterMonth, $next_easterDay -48, $nextyear)); $next_Faschingsdienstag = date("Y-m-d", mktime(1, 0, 0, $next_easterMonth, $next_easterDay -47, $nextyear)); $next_Aschermittwoch = date("Y-m-d", mktime(1, 0, 0, $next_easterMonth, $next_easterDay -46, $nextyear)); $next_Christi_Himmelfahrt = date("Y-m-d", mktime(1, 0, 0, $next_easterMonth, $next_easterDay +39, $nextyear)); $next_Pfingstsonntag = date("Y-m-d", mktime(1, 0, 0, $next_easterMonth, $next_easterDay +49, $nextyear)); $next_Pfingstmontag = date("Y-m-d", mktime(1, 0, 0, $next_easterMonth, $next_easterDay +50, $nextyear)); $next_Fronleichnam = date("Y-m-d", mktime(1, 0, 0, $next_easterMonth, $next_easterDay +60, $nextyear)); $erster_advent_timestamp = strtotime("+1 sunday",mktime(1,0,0,11,27,$aktuellesJahr)); $adventstag = date('j', $erster_advent_timestamp); $adventsMonth = date('n', $erster_advent_timestamp); $Advent1 = date("Y-m-d", mktime(1, 0, 0, $adventsMonth, $adventstag, $aktuellesJahr)); $Advent2 = date("Y-m-d", mktime(1, 0, 0, $adventsMonth, $adventstag +7, $aktuellesJahr)); $Advent3 = date("Y-m-d", mktime(1, 0, 0, $adventsMonth, $adventstag +14, $aktuellesJahr)); $Advent4 = date("Y-m-d", mktime(1, 0, 0, $adventsMonth, $adventstag +21, $aktuellesJahr)); $Totensonntag = date("Y-m-d", mktime(1, 0, 0, $adventsMonth, $adventstag -7, $aktuellesJahr)); $Volkstrauertag = date("Y-m-d", mktime(1, 0, 0, $adventsMonth, $adventstag -14, $aktuellesJahr)); $Bussundbettag = date("Y-m-d", mktime(1, 0, 0, $adventsMonth, $adventstag -11, $aktuellesJahr)); $next_erster_advent_timestamp = strtotime("+1 sunday",mktime(1,0,0,11,26,$nextyear)); $next_adventstag = date('j', $next_erster_advent_timestamp); $next_adventsMonth = date('n', $next_erster_advent_timestamp); $next_Advent1 = date("Y-m-d", mktime(1, 0, 0, $next_adventsMonth, $next_adventstag, $nextyear)); $next_Totensonntag = date("Y-m-d", mktime(1, 0, 0, $next_adventsMonth, $next_adventstag -7, $nextyear)); $next_Volkstrauertag = date("Y-m-d", mktime(1, 0, 0, $next_adventsMonth, $next_adventstag -14, $nextyear)); $next_Bussundbettag = date("Y-m-d", mktime(1, 0, 0, $next_adventsMonth, $next_adventstag -11, $nextyear)); if(date('n')==1){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage Januar $Neujahr=$richtigesJahr."-01-01"; $Hl3Koenige=$richtigesJahr."-01-06"; if(date('n')<=2){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage Feb $Valentinstag=$richtigesJahr."-02-14"; if(date('n')<=3){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage März $Sommerzeit=date("Y-m-d",mktime(1,0,0,3,(31-date("w", mktime(1,0,0,3,31,$richtigesJahr))),$richtigesJahr)); if(date('n')<=5){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage Mai $Maifeiertag=$richtigesJahr."-05-01"; $Muttertag=date("Y-m-d",mktime(1,0,0,5,(14-date("w", mktime(1,0,0,5,0,$richtigesJahr))),$richtigesJahr)); if(date('n')<=8){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage August $mariahimmel=$richtigesJahr."-08-15"; if(date('n')<=9){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage September $Oktoberfestbeginn = date("Y-m-d",strtotime("next saturday",mktime(1,0,0,9,15,$richtigesJahr))); $Oktoberfestanfangstag = date('d',strtotime("next saturday",mktime(1,0,0,9,15,$richtigesJahr))); if((date('w', mktime(1,0,0,10,1,$richtigesJahr)==0) AND $Oktoberfestanfangstag<=18 )or (date('w', mktime(1,0,0,10,2,$richtigesJahr)==0) AND $Oktoberfestanfangstag<=18) ) {$Oktoberfestende=$richtigesJahr."-10-03";}else { $Oktoberfestende=date("Y-m-d", mktime(1, 0, 0, 9, $Oktoberfestanfangstag +15, $richtigesJahr));} if(date('n')<=10){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage Oktober $tagderEinheit=$richtigesJahr."-10-03"; $Reformationstag=$richtigesJahr."-10-31"; $Winterzeit=date("Y-m-d",mktime(1,0,0,10,(31-date("w", mktime(1,0,0,10,31,$richtigesJahr))),$richtigesJahr)); if(date('n')<=11){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage November $allerheiligen=$richtigesJahr."-11-01"; $heiligabend=date("Y").'-12-24'; $Weihnachtsfeiertag1=date("Y").'-12-25'; $Weihnachtsfeiertag2=date("Y").'-12-26'; $Silvester=date("Y").'-12-31'; if(isset($_GET["jahreskalender"])){ if( $aktueller_Monat==1){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage Januar $Neujahr=$richtigesJahr."-01-01"; $Hl3Koenige=$richtigesJahr."-01-06"; if( $aktueller_Monat<=2){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage Feb $Valentinstag=$richtigesJahr."-02-14"; if( $aktueller_Monat<=3){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage März $Sommerzeit=date("Y-m-d",mktime(1,0,0,3,(31-date("w", mktime(1,0,0,3,31,$richtigesJahr))),$richtigesJahr)); if( $aktueller_Monat<=5){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage Mai $Maifeiertag=$richtigesJahr."-05-01"; $Muttertag=date("Y-m-d",mktime(1,0,0,5,(14-date("w", mktime(1,0,0,5,0,$richtigesJahr))),$richtigesJahr)); if( $aktueller_Monat<=8){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage August $mariahimmel=$richtigesJahr."-08-15"; if( $aktueller_Monat<=9){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage September $Oktoberfestbeginn = date("Y-m-d",strtotime("next saturday",mktime(1,0,0,9,15,$richtigesJahr))); $Oktoberfestanfangstag = date('d',strtotime("next saturday",mktime(1,0,0,9,15,$richtigesJahr))); if((date('w', mktime(1,0,0,10,1,$richtigesJahr)==0) AND $Oktoberfestanfangstag<=18 )or (date('w', mktime(1,0,0,10,2,$richtigesJahr)==0) AND $Oktoberfestanfangstag<=18) ) {$Oktoberfestende=$richtigesJahr."-10-03";}else { $Oktoberfestende=date("Y-m-d", mktime(1, 0, 0, 9, $Oktoberfestanfangstag +15, $richtigesJahr));} if( $aktueller_Monat<=10){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage Oktober $tagderEinheit=$richtigesJahr."-10-03"; $Reformationstag=$richtigesJahr."-10-31"; $Winterzeit=date("Y-m-d",mktime(1,0,0,10,(31-date("w", mktime(1,0,0,10,31,$richtigesJahr))),$richtigesJahr)); if( $aktueller_Monat<=11){$richtigesJahr=$aktuellesJahr;}else{$richtigesJahr=$nextyear;} //feste Feitertage November $allerheiligen=$richtigesJahr."-11-01"; $heiligabend=$aktuellesJahr.'-12-24'; $Weihnachtsfeiertag1=$aktuellesJahr.'-12-25'; $Weihnachtsfeiertag2=$aktuellesJahr.'-12-26'; $Silvester=$aktuellesJahr.'-12-31'; } require('fpdf.php'); if(date(n)==1){$ueberschrift=$aktuellesJahr;} else {$ueberschrift=$aktuellesJahr."/".date("y",mktime(1, 0, 0, 1, 1, $nextyear));} if(isset($_GET["jahreskalender"])){$ueberschrift=$_GET["jahreskalender"];} // ################################################################ // ab hier zu Verändern!! # Ihre persoenlichen Einstellungen ----------------------------------------- $titel = "Kalender ".$ueberschrift ; $logo = "" ; // Beispiel anhang logo.jpg Größe 200x120Pixel wenn im gleichen Verzeichnis: $logo = "logo.jpg"; $feiertage = array( //das sind die gesetzlichen Feiertage für Bayern! mehr im Internet unter http://www.feiertage.net/frei-tage.php $Neujahr => "Neujahr", $Hl3Koenige => "Heilige Drei Könige", $next_ostersonntag => "Ostersonntag", $aktueller_ostersonntag => "Ostersonntag", $next_Karfreitag => "Karfreitag", $aktueller_Karfreitag => "Karfreitag", $next_Ostermontag => "Ostermontag", $aktueller_Ostermontag => "Ostermontag", $next_Christi_Himmelfahrt => "Christi Himmelfahrt", $aktueller_Christi_Himmelfahrt => "Christi Himmelfahrt", $next_Pfingstsonntag => "Pfingstsonntag", $aktueller_Pfingstsonntag => "Pfingstsonntag", $next_Pfingstmontag => "Pfingstmontag", $aktueller_Pfingstmontag => "Pfingstmontag", $next_Fronleichnam => "Fronleichnam", $aktueller_Fronleichnam => "Fronleichnam", $Advent1 => "1.Advent", $next_Advent1 => "1.Advent", $Advent2 => "2.Advent", $Advent3 => "3.Advent", $Advent4 => "4.Advent", $Totensonntag => "Totensonntag", $next_Totensonntag => "Totensonntag", $Volkstrauertag => "Volkstrauertag", $next_Volkstrauertag => "Volkstrauertag", $Maifeiertag => "Maifeiertag", $mariahimmel => "Mariä Himmelfahrt", $tagderEinheit => "Tag der Deutschen Einheit", $allerheiligen => "Allerheiligen", $Weihnachtsfeiertag1 => "1. Weih.-Tag", $Weihnachtsfeiertag2 => "2. Weih.-Tag") ; $termine = array( //Termine $Valentinstag => "Valentinstag", $next_Rosenmontag => "Rosenmontag", $aktueller_Rosenmontag => "Rosenmontag", $next_Faschingsdienstag => "Faschingsdienstag", $aktueller_Faschingsdienstag => "Faschingsdienstag", $next_Aschermittwoch => "Aschermittwoch", $aktueller_Aschermittwoch => "Aschermittwoch", $Sommerzeit => "Sommerzeit -1", $Winterzeit => "Winterzeit +1", $Muttertag => "Muttertag", $Reformationstag => "Reformationstag", $Bussundbettag => "Buß & Bettag", $next_Bussundbettag => "Buß & Bettag", $heiligabend => "Heiligabend", $Silvester => "Silvester", $Oktoberfestbeginn => "Oktoberfestbeginn", $Oktoberfestende => "Oktoberfestende"); // ksort($feiertage);ksort($termine); // um die Arrays nach keys zu sortieren zwecks Überprüfung, ob alle Termine richtig sind. // ENDE Berechnung der beweglichen Feiertage -------------------------------------------------------------------------------------------------- $farbe_monat=array(11, 70, 151); $farbe_so = array(147, 190, 234); $farbe_sa = array(196, 220, 244); # Ende der persönlichen Einstellungen class PDF extends FPDF { # standard variablen var $startX=-25; var $x=-25; var $startY=20; var $y=50; var $breite=44; var $hoehe=5.5; var $lastMonth = "NULL" ; var $tage = array("Sonntag","Montag","Dienstag","Mittwoch", "Donnerstag","Freitag","Samstag"); #var tag = date("w"); var $monate = array("Januar","Februar","März", "April","Mai","Juni", "Juli","August","September", "Oktober","November","Dezember"); var $day = 0; var $dayX =1; function Header() { global $titel, $logo ; $this->SetFont('Arial','B',20); if ($logo != "") { $this->Image($logo,22.5,2,35); $this->Text(64.5,13,$titel); } else { $this->Text(30,13,$titel); } } function Monat() { global $titel,$logo, $farbe_monat; // $this->lastMonat="NULL"; $this->x = -25; $idx=date("n",$this->day)-1; $this->monat=$this->monate[$idx]; while ($this->dayX<367) { if(isset($_GET["jahreskalender"])){if($this->dayX > 100 && $this->monat == $this->monate[0]){break;}} else { // aufhören, wenn 12 Monate abgedruckt sind if ($this->dayX > 100 && $this->monat == $this->monate[date('n')-1]) {break;} } if ($this->lastMonat != $this->monat) { if(isset($_GET["jahreskalender"])){ if ($this->monat == $this->monate[6]) { // wenn 6 Monate auf der ersten Seite abgedruckt wurden, dann neue Seite einfügen $this->AddPage(); $this->Header(); $this->x=$this->startX; }} else { if ($this->monat == $this->monate[date('n')+5] or $this->monat == $this->monate[date('n')-7]) { // wenn 6 Monate auf der ersten Seite abgedruckt wurden, dann neue Seite einfügen $this->AddPage(); $this->Header(); $this->x=$this->startX; }} $this->y=$this->startY; $this->x+=$this->breite; $this->SetFillColor($farbe_monat[0],$farbe_monat[1],$farbe_monat[2]); $this->SetTextColor(250, 250, 250); $this->SetFont('Arial','B',14); $this->Rect($this->x, $this->y, 43, 8, 'FD'); if(((date('n')!=1 && $this->monat == "Januar") or ((date('n')!=2 AND date('n')!=1) && $this->monat == "Februar"))AND !isset($_GET["jahreskalender"])){ $nestyear=date('Y')+1; $this->Text($this->x+2,$this->y+6,$this->monat." ".$nestyear); } else{ $this->Text($this->x+2,$this->y+6,$this->monat); #$this->monat); } $this->lastMonat=$this->monat; $this->y+=$this->hoehe; $this->SetTextColor(0, 0, 0); } $this->y+=$this->hoehe; $this->Tag(); $this->dayX+=1 ; if(isset($_GET["jahreskalender"])){$this->day = mktime(1, 0, 0, 1 , $this->dayX, $_GET["jahreskalender"]);} else {$this->day = mktime(1, 0, 0, date('n') , $this->dayX, date('Y'));} //wenn ein jahreskalender angezeigt werden soll dann starten von 01.Januar dieses Jahres $monatIdx = date("n",$this->day)-1; $this->monat=$this->monate[$monatIdx]; } } function Tag() { global $farbe_sa, $farbe_so, $feiertage,$termine; $mday = date("l",$this->day); $fday=date("Y-m-d",$this->day); # Hintergrund-Farben if (preg_match("/^Sun/",$mday) || $feiertage[$fday]) { $this->SetLineWidth(0.1); $this->SetFillColor($farbe_so[0],$farbe_so[1],$farbe_so[2]); } elseif (preg_match("/^Sat/",$mday)) { $this->SetFillColor($farbe_sa[0],$farbe_sa[1],$farbe_sa[2]); } else { $this->SetLineWidth(0.1); $this->SetFillColor(255, 255, 255); } $this->Rect($this->x, $this->y, 43, $this->hoehe, 'FD'); # Datum angeben $this->SetFont('Arial','B',9); $this->Text($this->x+1,$this->y+4,date("d",$this->day)); $this->SetFont('Arial','',6); $this->Text($this->x+5,$this->y+4,substr($this->tage[date("w",$this->day)],0,2)); $this->SetFont('Arial','',5); //$this->Text($this->x+39,$this->y+4,$this->dayX); //Tagnummer des Jahres ausgeben # Wochennummer if (preg_match("/^Wed/",$mday)) { $this->SetFont('Arial','B',14); if(isset($_GET["jahreskalender"])){ $Wochennummer=date(W, mktime(1, 0, 0, 1 , $this->dayX, $_GET["jahreskalender"]));//Wochennummer berechnen lassen } else { $Wochennummer=date(W, mktime(1, 0, 0, date(n) , $this->dayX, date(Y)));}//Wochennummer berechnen lassen $Wochennummer=ltrim($Wochennummer,'0'); // führende 0 entfernen $this->SetTextColor(210, 230, 253); $this->Text($this->x+20,$this->y+4.6,$Wochennummer); $this->SetTextColor(0, 0, 0); } # Feiertage und andere Termine $this->SetFont('Arial','',8); $mtag= "" ; if ($feiertage[$fday] && $termine[$fday]) { $mtag = $feiertage[$fday]."|§|". $termine[$fday]; $this->SetFont('Arial','',6); } elseif ($feiertage[$fday]) { $mtag = $feiertage[$fday]; } elseif ($termine[$fday]) { $mtag = $termine[$fday]; } $mtage=preg_split("/\|§\|/",$mtag); if (count($mtage) >= 2) { $this->Text($this->x+10,$this->y+2,$mtage[0]); $this->Text($this->x+10,$this->y+4.5,$mtage[1]); } else { $this->Text($this->x+10,$this->y+4,$mtag); } return; } # allgemeiner Start der Klasse function Kalender () { if(isset($_GET["jahreskalender"])){ $this->day = mktime(1, 0, 0, 1 , 1, $_GET["jahreskalender"]); $this->monat = $monate[0]; $this->lastMonat= $monate[0]; } else{ $this->day = mktime(1, 0, 0, date('n') , 1, date('Y')); $this->monat = $monate[date('n')-1]; $this->lastMonat= $monate[date('n')-1];} $this->AddPage(); $this->Monat(); } } // Neue Klasse benutzen $pdf=new PDF('L','mm','A4'); $pdf->Kalender(); $pdf->Output();