Total Complexity | 3 |
Total Lines | 16 |
Duplicated Lines | 0 % |
Coverage | 100% |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
8 | class ExcludeWeekendConstraint implements DatetimeConstraintInterface, RecurrenceConstraintInterface |
||
9 | { |
||
10 | public function apply(Recurrence $recurrence, \Datetime $datetime): \Datetime |
||
11 | { |
||
12 | 1 | if ($this->isWeekend($datetime)) { |
|
13 | // Add 1 or 2 days to skip weekend (we didn't use `next monday` pattern of \Datetime::format cause it remove time) |
||
14 | 1 | $days = (7 - (int) $datetime->format('N') + 1); |
|
15 | 1 | $datetime->modify(sprintf('+%d days', $days)); |
|
16 | } |
||
17 | |||
18 | 1 | return $datetime; |
|
19 | } |
||
20 | |||
21 | private function isWeekend(\Datetime$datetime): bool |
||
24 | } |
||
25 | } |
||
26 |