29 lines
782 B
PHP
29 lines
782 B
PHP
|
<?php
|
||
|
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
namespace App\Services\WorkingDays\PublicHolidays;
|
||
|
|
||
|
use App\Models\NonWorkingDays;
|
||
|
|
||
|
/**
|
||
|
* Interface for determining public holidays in a given interval/day.
|
||
|
*/
|
||
|
interface PublicHolidaysStateDeterminerInterface
|
||
|
{
|
||
|
/**
|
||
|
* Checks if a given date is a public holiday.
|
||
|
* @param \DateTimeImmutable $publicHolidayDate
|
||
|
* @return bool
|
||
|
*/
|
||
|
public function isPublicHoliday(\DateTimeImmutable $publicHolidayDate): bool;
|
||
|
|
||
|
/**
|
||
|
* Check if is a public holiday in a given interval.
|
||
|
* @param \DateTimeImmutable $startDate
|
||
|
* @param \DateTimeImmutable $endDate
|
||
|
* @return array<NonWorkingDays>
|
||
|
*/
|
||
|
public function getPublicHolidaysInInterval(\DateTimeImmutable $startDate, \DateTimeImmutable $endDate): array;
|
||
|
}
|