"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 ($this->dayX > 100 && $this->monat == $this->monate[date(n)-1]) {break;} if ($this->lastMonat != $this->monat) { 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")){ $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 ; $this->day = mktime(1, 0, 0, date(n) , $this->dayX, date(Y)); $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); $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 () { $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(); ?>