Skip to content

Commit cfcc0b9

Browse files
Tweak Netherlands holidays (#263)
* Tweak Netherlands holidays * Fix phpstan issue
1 parent df6277b commit cfcc0b9

File tree

5 files changed

+62
-12
lines changed

5 files changed

+62
-12
lines changed

src/Countries/Netherlands.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@ protected function allHolidays(int $year): array
1515
{
1616
return array_merge([
1717
'Nieuwjaarsdag' => '01-01',
18-
'Bevrijdingsdag' => '05-05',
1918
'Eerste kerstdag' => '12-25',
2019
'Tweede kerstdag' => '12-26',
2120
], $this->variableHolidays($year));
2221
}
2322

24-
/** @return array<string, CarbonImmutable> */
23+
/** @return array<string, string|CarbonImmutable> */
2524
protected function variableHolidays(int $year): array
2625
{
2726
$koningsDag = CarbonImmutable::createFromDate($year, 4, 27);
@@ -32,14 +31,19 @@ protected function variableHolidays(int $year): array
3231

3332
$easter = $this->easter($year);
3433

35-
return [
34+
$holidays = [
3635
'Koningsdag' => $koningsDag,
37-
'Goede Vrijdag' => $easter->subDays(2),
3836
'Eerste paasdag' => $easter,
3937
'Tweede paasdag' => $easter->addDay(),
4038
'Hemelvaartsdag' => $easter->addDays(39),
4139
'Eerste pinksterdag' => $easter->addDays(49),
4240
'Tweede pinksterdag' => $easter->addDays(50),
4341
];
42+
43+
if ($year % 5 === 0) {
44+
$holidays['Bevrijdingsdag'] = '05-05';
45+
}
46+
47+
return $holidays;
4448
}
4549
}

src/Countries/Spain.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,7 @@ protected function regionHolidays2024(): array
394394
};
395395
}
396396

397+
/** @return array<string, string> */
397398
protected function regionHolidays2025(): array
398399
{
399400
$sanJose = ['San José' => '03-19'];

tests/.pest/snapshots/Countries/NetherlandsTest/it_can_calculate_dutch_holidays.snap

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@
33
"name": "Nieuwjaarsdag",
44
"date": "2024-01-01"
55
},
6-
{
7-
"name": "Goede Vrijdag",
8-
"date": "2024-03-29"
9-
},
106
{
117
"name": "Eerste paasdag",
128
"date": "2024-03-31"
@@ -19,10 +15,6 @@
1915
"name": "Koningsdag",
2016
"date": "2024-04-27"
2117
},
22-
{
23-
"name": "Bevrijdingsdag",
24-
"date": "2024-05-05"
25-
},
2618
{
2719
"name": "Hemelvaartsdag",
2820
"date": "2024-05-09"
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
[
2+
{
3+
"name": "Nieuwjaarsdag",
4+
"date": "2025-01-01"
5+
},
6+
{
7+
"name": "Eerste paasdag",
8+
"date": "2025-04-20"
9+
},
10+
{
11+
"name": "Tweede paasdag",
12+
"date": "2025-04-21"
13+
},
14+
{
15+
"name": "Koningsdag",
16+
"date": "2025-04-26"
17+
},
18+
{
19+
"name": "Bevrijdingsdag",
20+
"date": "2025-05-05"
21+
},
22+
{
23+
"name": "Hemelvaartsdag",
24+
"date": "2025-05-29"
25+
},
26+
{
27+
"name": "Eerste pinksterdag",
28+
"date": "2025-06-08"
29+
},
30+
{
31+
"name": "Tweede pinksterdag",
32+
"date": "2025-06-09"
33+
},
34+
{
35+
"name": "Eerste kerstdag",
36+
"date": "2025-12-25"
37+
},
38+
{
39+
"name": "Tweede kerstdag",
40+
"date": "2025-12-26"
41+
}
42+
]

tests/Countries/NetherlandsTest.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,16 @@
1515
->not()->toBeEmpty();
1616

1717
expect(formatDates($holidays))->toMatchSnapshot();
18+
});
19+
20+
it('can calculate dutch holidays with bevrijdingsdag every 5 year', function () {
21+
CarbonImmutable::setTestNow('2025-01-01');
1822

23+
$holidays = Holidays::for(country: 'nl')->get();
24+
25+
expect($holidays)
26+
->toBeArray()
27+
->not()->toBeEmpty();
28+
29+
expect(formatDates($holidays))->toMatchSnapshot();
1930
});

0 commit comments

Comments
 (0)