public static function Holidays($year, Bundesland $bundesland) { $easterSunday = PublicHolidays::EasterSunday($year); $days['Neujahr'] = new Datum($year . '-01-01'); $days['Tag der Arbeit'] = new Datum($year . '-05-01'); $days['Tag der deutschen Einheit'] = new Datum($year . '-10-03'); $days['1. Weihnachtsfeiertag'] = new Datum($year . '-12-25'); $days['2. Weihnachtsfeiertag'] = new Datum($year . '-12-26'); $days['Karfreitag'] = $easterSunday->DateAdd(-2); $days['Ostermontag'] = $easterSunday->DateAdd(1); $days['Christi Himmelfahrt'] = $easterSunday->DateAdd(39); $days['Pfingstmontag'] = $easterSunday->DateAdd(50); if (in_array($bundesland->Abbreviation(), array('BW', 'BY', 'ST'))) { $days['Hlg. drei Könige'] = new Datum($year . '-01-06'); } if (in_array($bundesland->Abbreviation(), array('BW', 'BY', 'HE', 'NW', 'RP', 'SL'))) { $days['Fronleichnam'] = $easterSunday->DateAdd(60); } if (in_array($bundesland->Abbreviation(), array('SL'))) { $days['Maria Himmelfahrt'] = new Datum($year . '-08-15'); } if (in_array($bundesland->Abbreviation(), array('BB', 'MV', 'SN', 'ST', 'TH'))) { $days['Reformationstag'] = new Datum($year . '-10-31'); } if (in_array($bundesland->Abbreviation(), array('BW', 'BY', 'NW', 'RP', 'SL'))) { $days['Allerheiligen'] = new Datum($year . '-11-01'); } if (in_array($bundesland->Abbreviation(), array('SN'))) { $date = new Datum($year . '-11-23'); $tage = $date->Format('w') + 4; if ($tage > 7) { $tage -= 7; } $days['Buß- und Bettag'] = $date->DateAdd(-$tage); } return $days; }
public function testDateAdd() { $this->assertEquals(new Datum('2008-09-19'), $this->datum->DateAdd(1)); $this->assertEquals(new Datum('2008-09-17'), $this->datum->DateAdd(-1)); $this->assertEquals(new Datum('2008-11-17'), $this->datum->DateAdd(60)); $datum = new Datum('2009-10-01'); $this->assertEquals(new Datum('2009-11-01'), $datum->DateAdd(31)); }