public function testAlteTests() { $this->assertEquals(new Datum('2011-05-27'), PublicHolidays::AddWorkingDays(0, new Datum('2011-05-27'))); $this->assertEquals(new Datum('2011-05-30'), PublicHolidays::AddWorkingDays(1, new Datum('2011-05-27'))); $this->assertEquals(new Datum('2011-05-30'), PublicHolidays::AddWorkingDays(0, new Datum('2011-05-28'))); $this->assertEquals(new Datum('2011-05-30'), PublicHolidays::AddWorkingDays(1, new Datum('2011-05-28'))); $this->assertEquals(new Datum('2011-05-30'), PublicHolidays::AddWorkingDays(0, new Datum('2011-05-29'))); $this->assertEquals(new Datum('2011-05-30'), PublicHolidays::AddWorkingDays(1, new Datum('2011-05-29'))); $this->assertEquals(new Datum('2011-06-06'), PublicHolidays::AddWorkingDays(2, new Datum('2011-06-01'))); $this->assertEquals(new Datum('2011-06-06'), PublicHolidays::AddWorkingDays(2, new Datum('2011-06-02'))); }
public static function AddWorkingDays($days, Datum $date = null) { if ($date === null) { $date = Datum::ToDay(); } if ($days == 0) { while (PublicHolidays::IsWeekend($date) || PublicHolidays::IsHoliday($date, new Bundesland('BB', 'Brandenburg'))) { $date = $date->DateAdd(1); } } $i = 0; while ($i < $days) { $date = $date->DateAdd(1); if (!PublicHolidays::IsWeekend($date) && !PublicHolidays::IsHoliday($date, new Bundesland('BB', 'Brandenburg'))) { $i++; } } return $date; }