29 lines
865 B
PHP
29 lines
865 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Support;
|
|
|
|
use DateTimeInterface;
|
|
|
|
/**
|
|
* Zustandslose Helfer für Zeiträume.
|
|
*/
|
|
final class DateRange
|
|
{
|
|
/**
|
|
* Anzahl Tage eines Zeitraums, bei dem beide Enden mitzählen -- die Anwesenheitstage einer
|
|
* Teilnahme also, bei der An- und Abreisetag beide zählen. Ein eintägiger Zeitraum ergibt 1.
|
|
*
|
|
* Die Reihenfolge der Argumente spielt keine Rolle, `DateInterval::days` liefert den Betrag.
|
|
*
|
|
* Achtung: Für die Förderabrechnung gilt eine andere Regel -- dort werden Nächte gezählt
|
|
* (siehe `presenceDaysSupport` in {@see \App\Resources\EventParticipantResource}). Dieser Helfer
|
|
* ist dafür nicht zuständig.
|
|
*/
|
|
public static function inclusiveDays(DateTimeInterface $from, DateTimeInterface $to): int
|
|
{
|
|
return $from->diff($to)->days + 1;
|
|
}
|
|
}
|