diff --git a/src/Countries/Austria.php b/src/Countries/Austria.php new file mode 100644 index 00000000..944e85be --- /dev/null +++ b/src/Countries/Austria.php @@ -0,0 +1,43 @@ + */ + protected function allHolidays(int $year): array + { + return array_merge([ + 'Neujahr' => '01-01', + 'Heilige Drei Könige' => '01-06', + 'Staatsfeiertag' => '05-01', + 'Mariä Himmelfahrt' => '08-15', + 'Nationalfeiertag' => '10-26', + 'Allerheiligen' => '11-01', + 'Mariä Empfängnis' => '12-08', + 'Christtag' => '12-25', + 'Stefanitag' => '12-25', + ], $this->variableHolidays($year)); + } + + /** @return array */ + protected function variableHolidays(int $year): array + { + $easter = CarbonImmutable::createFromTimestamp(easter_date($year)) + ->setTimezone('Europe/Vienna'); + + return [ + 'Ostermontag' => $easter->addDay(1), + 'Christi Himmelfahrt' => $easter->addDays(39), + 'Pfingstmontag' => $easter->addDays(50), + 'Fronleichnam' => $easter->addDays(60), + ]; + } +} diff --git a/tests/.pest/snapshots/Countries/AustriaTest/it_can_calculate_austrian_holidays.snap b/tests/.pest/snapshots/Countries/AustriaTest/it_can_calculate_austrian_holidays.snap new file mode 100644 index 00000000..08b5ae5a --- /dev/null +++ b/tests/.pest/snapshots/Countries/AustriaTest/it_can_calculate_austrian_holidays.snap @@ -0,0 +1,54 @@ +[ + { + "name": "Neujahr", + "date": "2024-01-01" + }, + { + "name": "Heilige Drei K\u00f6nige", + "date": "2024-01-06" + }, + { + "name": "Ostermontag", + "date": "2024-04-01" + }, + { + "name": "Staatsfeiertag", + "date": "2024-05-01" + }, + { + "name": "Christi Himmelfahrt", + "date": "2024-05-09" + }, + { + "name": "Pfingstmontag", + "date": "2024-05-20" + }, + { + "name": "Fronleichnam", + "date": "2024-05-30" + }, + { + "name": "Mari\u00e4 Himmelfahrt", + "date": "2024-08-15" + }, + { + "name": "Nationalfeiertag", + "date": "2024-10-26" + }, + { + "name": "Allerheiligen", + "date": "2024-11-01" + }, + { + "name": "Mari\u00e4 Empf\u00e4ngnis", + "date": "2024-12-08" + }, + { + "name": "Christtag", + "date": "2024-12-25" + }, + { + "name": "Stefanitag", + "date": "2024-12-25" + } +] \ No newline at end of file diff --git a/tests/Countries/AustriaTest.php b/tests/Countries/AustriaTest.php new file mode 100644 index 00000000..9018307f --- /dev/null +++ b/tests/Countries/AustriaTest.php @@ -0,0 +1,18 @@ +get(); + + expect($holidays) + ->toBeArray() + ->not()->toBeEmpty(); + + expect(formatDates($holidays))->toMatchSnapshot(); +});