assertSame(1, DateRange::inclusiveDays($day, $day)); } public function test_both_ends_are_counted(): void { // An- und Abreisetag zählen beide mit. $this->assertSame(2, DateRange::inclusiveDays(new DateTime('2026-07-16'), new DateTime('2026-07-17'))); $this->assertSame(5, DateRange::inclusiveDays(new DateTime('2026-07-16'), new DateTime('2026-07-20'))); } public function test_the_order_of_the_arguments_does_not_matter(): void { $early = new DateTime('2026-07-16'); $late = new DateTime('2026-07-20'); $this->assertSame( DateRange::inclusiveDays($early, $late), DateRange::inclusiveDays($late, $early) ); } public function test_month_and_year_boundaries_are_handled(): void { $this->assertSame(3, DateRange::inclusiveDays(new DateTime('2026-07-30'), new DateTime('2026-08-01'))); $this->assertSame(3, DateRange::inclusiveDays(new DateTime('2026-12-31'), new DateTime('2027-01-02'))); // 2028 ist ein Schaltjahr. $this->assertSame(2, DateRange::inclusiveDays(new DateTime('2028-02-28'), new DateTime('2028-02-29'))); } }