diff --git a/LICENSE b/LICENSE index 4e55b2297..8a0d9b51d 100644 --- a/LICENSE +++ b/LICENSE @@ -102,10 +102,12 @@ https://en.wikipedia.org/wiki/Public_holidays_in_Norway https://en.wikipedia.org/wiki/Public_holidays_in_Panama https://en.wikipedia.org/wiki/Public_holidays_in_Paraguay https://en.wikipedia.org/wiki/Public_holidays_in_Peru +https://en.wikipedia.org/wiki/Public_holidays_in_Puerto_Rico https://en.wikipedia.org/wiki/Public_holidays_in_Romania https://en.wikipedia.org/wiki/Public_holidays_in_Russia https://en.wikipedia.org/wiki/Public_holidays_in_Saint_Kitts_and_Nevis https://en.wikipedia.org/wiki/Public_holidays_in_Saint_Lucia +https://en.wikipedia.org/wiki/Public_holidays_in_Saint_Vincent_and_the_Grenadines https://en.wikipedia.org/wiki/Public_holidays_in_Serbia https://en.wikipedia.org/wiki/Public_holidays_in_Singapore https://en.wikipedia.org/wiki/Public_holidays_in_Sint_Maarten @@ -117,6 +119,7 @@ https://en.wikipedia.org/wiki/Public_holidays_in_South_Sudan https://en.wikipedia.org/wiki/Public_holidays_in_Taiwan https://en.wikipedia.org/wiki/Public_holidays_in_Tanzania https://en.wikipedia.org/wiki/Public_holidays_in_Togo +https://en.wikipedia.org/wiki/Public_holidays_in_Trinidad_and_Tobago https://en.wikipedia.org/wiki/Public_holidays_in_Turkey https://en.wikipedia.org/wiki/Public_holidays_in_Uganda https://en.wikipedia.org/wiki/Public_holidays_in_Ukraine diff --git a/README.md b/README.md index 5d8e2a8ca..7d1e21917 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ If you are missing holidays from your country, state, region please consider ``` -Countries: 169 +Countries: 177 ├── AD: Andorra │ └── 07: Andorra la Vella ├── AE: دولة الإمارات العربية المتحدة @@ -380,6 +380,7 @@ Countries: 169 ├── PH: Philippines ├── PL: Polska ├── PM: St. Pierre & Miquelon +├── PR: Puerto Rico ├── PT: Portugal ├── PY: Paraguay ├── RE: Réunion @@ -416,6 +417,7 @@ Countries: 169 ├── TN: الجمهورية التونسية ├── TO: Puleʻanga Fakatuʻi ʻo Tonga ├── TR: Türkiye +├── TT: Trinidad & Tobago ├── TW: 中華民國 ├── TZ: Tanzania ├── UA: Україна @@ -476,6 +478,7 @@ Countries: 169 │ └── WY: Wyoming ├── UY: Uruguay ├── VA: Stato della Città del Vaticano +├── VC: St. Vincent & Grenadines ├── VE: Venezuela │ ├── B: Anzoátegui │ ├── G: Carabobo diff --git a/data/countries/VC.todo b/data/countries/VC.todo deleted file mode 100644 index 53e500e0e..000000000 --- a/data/countries/VC.todo +++ /dev/null @@ -1,22 +0,0 @@ -holidays: - VC: - names: - en: St. Vincent & Grenadines - langs: [] - zones: - - America/Port_of_Spain - dayoff: '' - days: {} - states: - '01': - name: Charlotte - '02': - name: Saint Andrew - '03': - name: Saint David - '04': - name: Saint George - '05': - name: Saint Patrick - '06': - name: Grenadines diff --git a/data/countries/VC.yaml b/data/countries/VC.yaml new file mode 100644 index 000000000..9519bcfa6 --- /dev/null +++ b/data/countries/VC.yaml @@ -0,0 +1,70 @@ +# @attrib https://en.wikipedia.org/wiki/Public_holidays_in_Saint_Vincent_and_the_Grenadines +holidays: + VC: + names: + en: St. Vincent & Grenadines + langs: + - en + zones: + - America/Port_of_Spain + dayoff: sunday + days: + 01-01 and if Sunday then next Monday: + substitute: true + _name: 01-01 + 03-14 and if Sunday then next Monday: + substitute: true + name: + en: National Hero′s Day + easter -2: + _name: easter -2 + easter: + _name: easter + type: observance + easter 1: + _name: easter 1 + 05-01 and if Sunday then next Monday: + substitute: true + _name: 05-01 + easter 50: + _name: easter 50 + 1st Monday in July: + name: + en: Carnival Monday + disable: + - '2021-06-05' + enable: + - '2021-09-06' + Tuesday after 1st Monday in July: + name: + en: Carnival Tuesday + disable: + - '2021-06-06' + enable: + - '2021-09-07' + 08-01 and if Sunday then next Monday: + substitute: true + name: + en: Emancipation Day + 10-27 and if Sunday then next Monday: + substitute: true + _name: Independence Day + 12-25 and if Sunday then next Tuesday: + substitute: true + _name: 12-25 + 12-26 and if Sunday then next Monday: + substitute: true + _name: 12-26 + # states: + # '01': + # name: Charlotte + # '02': + # name: Saint Andrew + # '03': + # name: Saint David + # '04': + # name: Saint George + # '05': + # name: Saint Patrick + # '06': + # name: Grenadines diff --git a/test/fixtures/VC-2015.json b/test/fixtures/VC-2015.json new file mode 100644 index 000000000..310237679 --- /dev/null +++ b/test/fixtures/VC-2015.json @@ -0,0 +1,119 @@ +[ + { + "date": "2015-01-01 00:00:00", + "start": "2015-01-01T04:00:00.000Z", + "end": "2015-01-02T04:00:00.000Z", + "name": "New Year's Day", + "type": "public", + "rule": "01-01 and if Sunday then next Monday", + "_weekday": "Thu" + }, + { + "date": "2015-03-14 00:00:00", + "start": "2015-03-14T04:00:00.000Z", + "end": "2015-03-15T04:00:00.000Z", + "name": "National Hero′s Day", + "type": "public", + "rule": "03-14 and if Sunday then next Monday", + "_weekday": "Sat" + }, + { + "date": "2015-04-03 00:00:00", + "start": "2015-04-03T04:00:00.000Z", + "end": "2015-04-04T04:00:00.000Z", + "name": "Good Friday", + "type": "public", + "rule": "easter -2", + "_weekday": "Fri" + }, + { + "date": "2015-04-05 00:00:00", + "start": "2015-04-05T04:00:00.000Z", + "end": "2015-04-06T04:00:00.000Z", + "name": "Easter Sunday", + "type": "observance", + "rule": "easter", + "_weekday": "Sun" + }, + { + "date": "2015-04-06 00:00:00", + "start": "2015-04-06T04:00:00.000Z", + "end": "2015-04-07T04:00:00.000Z", + "name": "Easter Monday", + "type": "public", + "rule": "easter 1", + "_weekday": "Mon" + }, + { + "date": "2015-05-01 00:00:00", + "start": "2015-05-01T04:00:00.000Z", + "end": "2015-05-02T04:00:00.000Z", + "name": "Labour Day", + "type": "public", + "rule": "05-01 and if Sunday then next Monday", + "_weekday": "Fri" + }, + { + "date": "2015-05-25 00:00:00", + "start": "2015-05-25T04:00:00.000Z", + "end": "2015-05-26T04:00:00.000Z", + "name": "Whit Monday", + "type": "public", + "rule": "easter 50", + "_weekday": "Mon" + }, + { + "date": "2015-07-06 00:00:00", + "start": "2015-07-06T04:00:00.000Z", + "end": "2015-07-07T04:00:00.000Z", + "name": "Carnival Monday", + "type": "public", + "rule": "1st Monday in July", + "_weekday": "Mon" + }, + { + "date": "2015-07-07 00:00:00", + "start": "2015-07-07T04:00:00.000Z", + "end": "2015-07-08T04:00:00.000Z", + "name": "Carnival Tuesday", + "type": "public", + "rule": "Tuesday after 1st Monday in July", + "_weekday": "Tue" + }, + { + "date": "2015-08-01 00:00:00", + "start": "2015-08-01T04:00:00.000Z", + "end": "2015-08-02T04:00:00.000Z", + "name": "Emancipation Day", + "type": "public", + "rule": "08-01 and if Sunday then next Monday", + "_weekday": "Sat" + }, + { + "date": "2015-10-27 00:00:00", + "start": "2015-10-27T04:00:00.000Z", + "end": "2015-10-28T04:00:00.000Z", + "name": "Independence Day", + "type": "public", + "rule": "10-27 and if Sunday then next Monday", + "_weekday": "Tue" + }, + { + "date": "2015-12-25 00:00:00", + "start": "2015-12-25T04:00:00.000Z", + "end": "2015-12-26T04:00:00.000Z", + "name": "Christmas Day", + "type": "public", + "rule": "12-25 and if Sunday then next Tuesday", + "_weekday": "Fri" + }, + { + "date": "2015-12-26 00:00:00", + "start": "2015-12-26T04:00:00.000Z", + "end": "2015-12-27T04:00:00.000Z", + "name": "Boxing Day", + "type": "public", + "rule": "12-26 and if Sunday then next Monday", + "_weekday": "Sat" + } +] \ No newline at end of file diff --git a/test/fixtures/VC-2016.json b/test/fixtures/VC-2016.json new file mode 100644 index 000000000..57c814340 --- /dev/null +++ b/test/fixtures/VC-2016.json @@ -0,0 +1,139 @@ +[ + { + "date": "2016-01-01 00:00:00", + "start": "2016-01-01T04:00:00.000Z", + "end": "2016-01-02T04:00:00.000Z", + "name": "New Year's Day", + "type": "public", + "rule": "01-01 and if Sunday then next Monday", + "_weekday": "Fri" + }, + { + "date": "2016-03-14 00:00:00", + "start": "2016-03-14T04:00:00.000Z", + "end": "2016-03-15T04:00:00.000Z", + "name": "National Hero′s Day", + "type": "public", + "rule": "03-14 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2016-03-25 00:00:00", + "start": "2016-03-25T04:00:00.000Z", + "end": "2016-03-26T04:00:00.000Z", + "name": "Good Friday", + "type": "public", + "rule": "easter -2", + "_weekday": "Fri" + }, + { + "date": "2016-03-27 00:00:00", + "start": "2016-03-27T04:00:00.000Z", + "end": "2016-03-28T04:00:00.000Z", + "name": "Easter Sunday", + "type": "observance", + "rule": "easter", + "_weekday": "Sun" + }, + { + "date": "2016-03-28 00:00:00", + "start": "2016-03-28T04:00:00.000Z", + "end": "2016-03-29T04:00:00.000Z", + "name": "Easter Monday", + "type": "public", + "rule": "easter 1", + "_weekday": "Mon" + }, + { + "date": "2016-05-01 00:00:00", + "start": "2016-05-01T04:00:00.000Z", + "end": "2016-05-02T04:00:00.000Z", + "name": "Labour Day", + "type": "public", + "rule": "05-01 and if Sunday then next Monday", + "_weekday": "Sun" + }, + { + "date": "2016-05-02 00:00:00", + "start": "2016-05-02T04:00:00.000Z", + "end": "2016-05-03T04:00:00.000Z", + "name": "Labour Day (substitute day)", + "type": "public", + "substitute": true, + "rule": "05-01 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2016-05-16 00:00:00", + "start": "2016-05-16T04:00:00.000Z", + "end": "2016-05-17T04:00:00.000Z", + "name": "Whit Monday", + "type": "public", + "rule": "easter 50", + "_weekday": "Mon" + }, + { + "date": "2016-07-04 00:00:00", + "start": "2016-07-04T04:00:00.000Z", + "end": "2016-07-05T04:00:00.000Z", + "name": "Carnival Monday", + "type": "public", + "rule": "1st Monday in July", + "_weekday": "Mon" + }, + { + "date": "2016-07-05 00:00:00", + "start": "2016-07-05T04:00:00.000Z", + "end": "2016-07-06T04:00:00.000Z", + "name": "Carnival Tuesday", + "type": "public", + "rule": "Tuesday after 1st Monday in July", + "_weekday": "Tue" + }, + { + "date": "2016-08-01 00:00:00", + "start": "2016-08-01T04:00:00.000Z", + "end": "2016-08-02T04:00:00.000Z", + "name": "Emancipation Day", + "type": "public", + "rule": "08-01 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2016-10-27 00:00:00", + "start": "2016-10-27T04:00:00.000Z", + "end": "2016-10-28T04:00:00.000Z", + "name": "Independence Day", + "type": "public", + "rule": "10-27 and if Sunday then next Monday", + "_weekday": "Thu" + }, + { + "date": "2016-12-25 00:00:00", + "start": "2016-12-25T04:00:00.000Z", + "end": "2016-12-26T04:00:00.000Z", + "name": "Christmas Day", + "type": "public", + "rule": "12-25 and if Sunday then next Tuesday", + "_weekday": "Sun" + }, + { + "date": "2016-12-26 00:00:00", + "start": "2016-12-26T04:00:00.000Z", + "end": "2016-12-27T04:00:00.000Z", + "name": "Boxing Day", + "type": "public", + "rule": "12-26 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2016-12-27 00:00:00", + "start": "2016-12-27T04:00:00.000Z", + "end": "2016-12-28T04:00:00.000Z", + "name": "Christmas Day (substitute day)", + "type": "public", + "substitute": true, + "rule": "12-25 and if Sunday then next Tuesday", + "_weekday": "Tue" + } +] \ No newline at end of file diff --git a/test/fixtures/VC-2017.json b/test/fixtures/VC-2017.json new file mode 100644 index 000000000..4681f8818 --- /dev/null +++ b/test/fixtures/VC-2017.json @@ -0,0 +1,129 @@ +[ + { + "date": "2017-01-01 00:00:00", + "start": "2017-01-01T04:00:00.000Z", + "end": "2017-01-02T04:00:00.000Z", + "name": "New Year's Day", + "type": "public", + "rule": "01-01 and if Sunday then next Monday", + "_weekday": "Sun" + }, + { + "date": "2017-01-02 00:00:00", + "start": "2017-01-02T04:00:00.000Z", + "end": "2017-01-03T04:00:00.000Z", + "name": "New Year's Day (substitute day)", + "type": "public", + "substitute": true, + "rule": "01-01 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2017-03-14 00:00:00", + "start": "2017-03-14T04:00:00.000Z", + "end": "2017-03-15T04:00:00.000Z", + "name": "National Hero′s Day", + "type": "public", + "rule": "03-14 and if Sunday then next Monday", + "_weekday": "Tue" + }, + { + "date": "2017-04-14 00:00:00", + "start": "2017-04-14T04:00:00.000Z", + "end": "2017-04-15T04:00:00.000Z", + "name": "Good Friday", + "type": "public", + "rule": "easter -2", + "_weekday": "Fri" + }, + { + "date": "2017-04-16 00:00:00", + "start": "2017-04-16T04:00:00.000Z", + "end": "2017-04-17T04:00:00.000Z", + "name": "Easter Sunday", + "type": "observance", + "rule": "easter", + "_weekday": "Sun" + }, + { + "date": "2017-04-17 00:00:00", + "start": "2017-04-17T04:00:00.000Z", + "end": "2017-04-18T04:00:00.000Z", + "name": "Easter Monday", + "type": "public", + "rule": "easter 1", + "_weekday": "Mon" + }, + { + "date": "2017-05-01 00:00:00", + "start": "2017-05-01T04:00:00.000Z", + "end": "2017-05-02T04:00:00.000Z", + "name": "Labour Day", + "type": "public", + "rule": "05-01 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2017-06-05 00:00:00", + "start": "2017-06-05T04:00:00.000Z", + "end": "2017-06-06T04:00:00.000Z", + "name": "Whit Monday", + "type": "public", + "rule": "easter 50", + "_weekday": "Mon" + }, + { + "date": "2017-07-03 00:00:00", + "start": "2017-07-03T04:00:00.000Z", + "end": "2017-07-04T04:00:00.000Z", + "name": "Carnival Monday", + "type": "public", + "rule": "1st Monday in July", + "_weekday": "Mon" + }, + { + "date": "2017-07-04 00:00:00", + "start": "2017-07-04T04:00:00.000Z", + "end": "2017-07-05T04:00:00.000Z", + "name": "Carnival Tuesday", + "type": "public", + "rule": "Tuesday after 1st Monday in July", + "_weekday": "Tue" + }, + { + "date": "2017-08-01 00:00:00", + "start": "2017-08-01T04:00:00.000Z", + "end": "2017-08-02T04:00:00.000Z", + "name": "Emancipation Day", + "type": "public", + "rule": "08-01 and if Sunday then next Monday", + "_weekday": "Tue" + }, + { + "date": "2017-10-27 00:00:00", + "start": "2017-10-27T04:00:00.000Z", + "end": "2017-10-28T04:00:00.000Z", + "name": "Independence Day", + "type": "public", + "rule": "10-27 and if Sunday then next Monday", + "_weekday": "Fri" + }, + { + "date": "2017-12-25 00:00:00", + "start": "2017-12-25T04:00:00.000Z", + "end": "2017-12-26T04:00:00.000Z", + "name": "Christmas Day", + "type": "public", + "rule": "12-25 and if Sunday then next Tuesday", + "_weekday": "Mon" + }, + { + "date": "2017-12-26 00:00:00", + "start": "2017-12-26T04:00:00.000Z", + "end": "2017-12-27T04:00:00.000Z", + "name": "Boxing Day", + "type": "public", + "rule": "12-26 and if Sunday then next Monday", + "_weekday": "Tue" + } +] \ No newline at end of file diff --git a/test/fixtures/VC-2018.json b/test/fixtures/VC-2018.json new file mode 100644 index 000000000..e5f7e59be --- /dev/null +++ b/test/fixtures/VC-2018.json @@ -0,0 +1,119 @@ +[ + { + "date": "2018-01-01 00:00:00", + "start": "2018-01-01T04:00:00.000Z", + "end": "2018-01-02T04:00:00.000Z", + "name": "New Year's Day", + "type": "public", + "rule": "01-01 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2018-03-14 00:00:00", + "start": "2018-03-14T04:00:00.000Z", + "end": "2018-03-15T04:00:00.000Z", + "name": "National Hero′s Day", + "type": "public", + "rule": "03-14 and if Sunday then next Monday", + "_weekday": "Wed" + }, + { + "date": "2018-03-30 00:00:00", + "start": "2018-03-30T04:00:00.000Z", + "end": "2018-03-31T04:00:00.000Z", + "name": "Good Friday", + "type": "public", + "rule": "easter -2", + "_weekday": "Fri" + }, + { + "date": "2018-04-01 00:00:00", + "start": "2018-04-01T04:00:00.000Z", + "end": "2018-04-02T04:00:00.000Z", + "name": "Easter Sunday", + "type": "observance", + "rule": "easter", + "_weekday": "Sun" + }, + { + "date": "2018-04-02 00:00:00", + "start": "2018-04-02T04:00:00.000Z", + "end": "2018-04-03T04:00:00.000Z", + "name": "Easter Monday", + "type": "public", + "rule": "easter 1", + "_weekday": "Mon" + }, + { + "date": "2018-05-01 00:00:00", + "start": "2018-05-01T04:00:00.000Z", + "end": "2018-05-02T04:00:00.000Z", + "name": "Labour Day", + "type": "public", + "rule": "05-01 and if Sunday then next Monday", + "_weekday": "Tue" + }, + { + "date": "2018-05-21 00:00:00", + "start": "2018-05-21T04:00:00.000Z", + "end": "2018-05-22T04:00:00.000Z", + "name": "Whit Monday", + "type": "public", + "rule": "easter 50", + "_weekday": "Mon" + }, + { + "date": "2018-07-02 00:00:00", + "start": "2018-07-02T04:00:00.000Z", + "end": "2018-07-03T04:00:00.000Z", + "name": "Carnival Monday", + "type": "public", + "rule": "1st Monday in July", + "_weekday": "Mon" + }, + { + "date": "2018-07-03 00:00:00", + "start": "2018-07-03T04:00:00.000Z", + "end": "2018-07-04T04:00:00.000Z", + "name": "Carnival Tuesday", + "type": "public", + "rule": "Tuesday after 1st Monday in July", + "_weekday": "Tue" + }, + { + "date": "2018-08-01 00:00:00", + "start": "2018-08-01T04:00:00.000Z", + "end": "2018-08-02T04:00:00.000Z", + "name": "Emancipation Day", + "type": "public", + "rule": "08-01 and if Sunday then next Monday", + "_weekday": "Wed" + }, + { + "date": "2018-10-27 00:00:00", + "start": "2018-10-27T04:00:00.000Z", + "end": "2018-10-28T04:00:00.000Z", + "name": "Independence Day", + "type": "public", + "rule": "10-27 and if Sunday then next Monday", + "_weekday": "Sat" + }, + { + "date": "2018-12-25 00:00:00", + "start": "2018-12-25T04:00:00.000Z", + "end": "2018-12-26T04:00:00.000Z", + "name": "Christmas Day", + "type": "public", + "rule": "12-25 and if Sunday then next Tuesday", + "_weekday": "Tue" + }, + { + "date": "2018-12-26 00:00:00", + "start": "2018-12-26T04:00:00.000Z", + "end": "2018-12-27T04:00:00.000Z", + "name": "Boxing Day", + "type": "public", + "rule": "12-26 and if Sunday then next Monday", + "_weekday": "Wed" + } +] \ No newline at end of file diff --git a/test/fixtures/VC-2019.json b/test/fixtures/VC-2019.json new file mode 100644 index 000000000..80cde0ff4 --- /dev/null +++ b/test/fixtures/VC-2019.json @@ -0,0 +1,129 @@ +[ + { + "date": "2019-01-01 00:00:00", + "start": "2019-01-01T04:00:00.000Z", + "end": "2019-01-02T04:00:00.000Z", + "name": "New Year's Day", + "type": "public", + "rule": "01-01 and if Sunday then next Monday", + "_weekday": "Tue" + }, + { + "date": "2019-03-14 00:00:00", + "start": "2019-03-14T04:00:00.000Z", + "end": "2019-03-15T04:00:00.000Z", + "name": "National Hero′s Day", + "type": "public", + "rule": "03-14 and if Sunday then next Monday", + "_weekday": "Thu" + }, + { + "date": "2019-04-19 00:00:00", + "start": "2019-04-19T04:00:00.000Z", + "end": "2019-04-20T04:00:00.000Z", + "name": "Good Friday", + "type": "public", + "rule": "easter -2", + "_weekday": "Fri" + }, + { + "date": "2019-04-21 00:00:00", + "start": "2019-04-21T04:00:00.000Z", + "end": "2019-04-22T04:00:00.000Z", + "name": "Easter Sunday", + "type": "observance", + "rule": "easter", + "_weekday": "Sun" + }, + { + "date": "2019-04-22 00:00:00", + "start": "2019-04-22T04:00:00.000Z", + "end": "2019-04-23T04:00:00.000Z", + "name": "Easter Monday", + "type": "public", + "rule": "easter 1", + "_weekday": "Mon" + }, + { + "date": "2019-05-01 00:00:00", + "start": "2019-05-01T04:00:00.000Z", + "end": "2019-05-02T04:00:00.000Z", + "name": "Labour Day", + "type": "public", + "rule": "05-01 and if Sunday then next Monday", + "_weekday": "Wed" + }, + { + "date": "2019-06-10 00:00:00", + "start": "2019-06-10T04:00:00.000Z", + "end": "2019-06-11T04:00:00.000Z", + "name": "Whit Monday", + "type": "public", + "rule": "easter 50", + "_weekday": "Mon" + }, + { + "date": "2019-07-01 00:00:00", + "start": "2019-07-01T04:00:00.000Z", + "end": "2019-07-02T04:00:00.000Z", + "name": "Carnival Monday", + "type": "public", + "rule": "1st Monday in July", + "_weekday": "Mon" + }, + { + "date": "2019-07-02 00:00:00", + "start": "2019-07-02T04:00:00.000Z", + "end": "2019-07-03T04:00:00.000Z", + "name": "Carnival Tuesday", + "type": "public", + "rule": "Tuesday after 1st Monday in July", + "_weekday": "Tue" + }, + { + "date": "2019-08-01 00:00:00", + "start": "2019-08-01T04:00:00.000Z", + "end": "2019-08-02T04:00:00.000Z", + "name": "Emancipation Day", + "type": "public", + "rule": "08-01 and if Sunday then next Monday", + "_weekday": "Thu" + }, + { + "date": "2019-10-27 00:00:00", + "start": "2019-10-27T04:00:00.000Z", + "end": "2019-10-28T04:00:00.000Z", + "name": "Independence Day", + "type": "public", + "rule": "10-27 and if Sunday then next Monday", + "_weekday": "Sun" + }, + { + "date": "2019-10-28 00:00:00", + "start": "2019-10-28T04:00:00.000Z", + "end": "2019-10-29T04:00:00.000Z", + "name": "Independence Day (substitute day)", + "type": "public", + "substitute": true, + "rule": "10-27 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2019-12-25 00:00:00", + "start": "2019-12-25T04:00:00.000Z", + "end": "2019-12-26T04:00:00.000Z", + "name": "Christmas Day", + "type": "public", + "rule": "12-25 and if Sunday then next Tuesday", + "_weekday": "Wed" + }, + { + "date": "2019-12-26 00:00:00", + "start": "2019-12-26T04:00:00.000Z", + "end": "2019-12-27T04:00:00.000Z", + "name": "Boxing Day", + "type": "public", + "rule": "12-26 and if Sunday then next Monday", + "_weekday": "Thu" + } +] \ No newline at end of file diff --git a/test/fixtures/VC-2020.json b/test/fixtures/VC-2020.json new file mode 100644 index 000000000..ba00def7d --- /dev/null +++ b/test/fixtures/VC-2020.json @@ -0,0 +1,119 @@ +[ + { + "date": "2020-01-01 00:00:00", + "start": "2020-01-01T04:00:00.000Z", + "end": "2020-01-02T04:00:00.000Z", + "name": "New Year's Day", + "type": "public", + "rule": "01-01 and if Sunday then next Monday", + "_weekday": "Wed" + }, + { + "date": "2020-03-14 00:00:00", + "start": "2020-03-14T04:00:00.000Z", + "end": "2020-03-15T04:00:00.000Z", + "name": "National Hero′s Day", + "type": "public", + "rule": "03-14 and if Sunday then next Monday", + "_weekday": "Sat" + }, + { + "date": "2020-04-10 00:00:00", + "start": "2020-04-10T04:00:00.000Z", + "end": "2020-04-11T04:00:00.000Z", + "name": "Good Friday", + "type": "public", + "rule": "easter -2", + "_weekday": "Fri" + }, + { + "date": "2020-04-12 00:00:00", + "start": "2020-04-12T04:00:00.000Z", + "end": "2020-04-13T04:00:00.000Z", + "name": "Easter Sunday", + "type": "observance", + "rule": "easter", + "_weekday": "Sun" + }, + { + "date": "2020-04-13 00:00:00", + "start": "2020-04-13T04:00:00.000Z", + "end": "2020-04-14T04:00:00.000Z", + "name": "Easter Monday", + "type": "public", + "rule": "easter 1", + "_weekday": "Mon" + }, + { + "date": "2020-05-01 00:00:00", + "start": "2020-05-01T04:00:00.000Z", + "end": "2020-05-02T04:00:00.000Z", + "name": "Labour Day", + "type": "public", + "rule": "05-01 and if Sunday then next Monday", + "_weekday": "Fri" + }, + { + "date": "2020-06-01 00:00:00", + "start": "2020-06-01T04:00:00.000Z", + "end": "2020-06-02T04:00:00.000Z", + "name": "Whit Monday", + "type": "public", + "rule": "easter 50", + "_weekday": "Mon" + }, + { + "date": "2020-07-06 00:00:00", + "start": "2020-07-06T04:00:00.000Z", + "end": "2020-07-07T04:00:00.000Z", + "name": "Carnival Monday", + "type": "public", + "rule": "1st Monday in July", + "_weekday": "Mon" + }, + { + "date": "2020-07-07 00:00:00", + "start": "2020-07-07T04:00:00.000Z", + "end": "2020-07-08T04:00:00.000Z", + "name": "Carnival Tuesday", + "type": "public", + "rule": "Tuesday after 1st Monday in July", + "_weekday": "Tue" + }, + { + "date": "2020-08-01 00:00:00", + "start": "2020-08-01T04:00:00.000Z", + "end": "2020-08-02T04:00:00.000Z", + "name": "Emancipation Day", + "type": "public", + "rule": "08-01 and if Sunday then next Monday", + "_weekday": "Sat" + }, + { + "date": "2020-10-27 00:00:00", + "start": "2020-10-27T04:00:00.000Z", + "end": "2020-10-28T04:00:00.000Z", + "name": "Independence Day", + "type": "public", + "rule": "10-27 and if Sunday then next Monday", + "_weekday": "Tue" + }, + { + "date": "2020-12-25 00:00:00", + "start": "2020-12-25T04:00:00.000Z", + "end": "2020-12-26T04:00:00.000Z", + "name": "Christmas Day", + "type": "public", + "rule": "12-25 and if Sunday then next Tuesday", + "_weekday": "Fri" + }, + { + "date": "2020-12-26 00:00:00", + "start": "2020-12-26T04:00:00.000Z", + "end": "2020-12-27T04:00:00.000Z", + "name": "Boxing Day", + "type": "public", + "rule": "12-26 and if Sunday then next Monday", + "_weekday": "Sat" + } +] \ No newline at end of file diff --git a/test/fixtures/VC-2021.json b/test/fixtures/VC-2021.json new file mode 100644 index 000000000..6b77a4831 --- /dev/null +++ b/test/fixtures/VC-2021.json @@ -0,0 +1,149 @@ +[ + { + "date": "2021-01-01 00:00:00", + "start": "2021-01-01T04:00:00.000Z", + "end": "2021-01-02T04:00:00.000Z", + "name": "New Year's Day", + "type": "public", + "rule": "01-01 and if Sunday then next Monday", + "_weekday": "Fri" + }, + { + "date": "2021-03-14 00:00:00", + "start": "2021-03-14T04:00:00.000Z", + "end": "2021-03-15T04:00:00.000Z", + "name": "National Hero′s Day", + "type": "public", + "rule": "03-14 and if Sunday then next Monday", + "_weekday": "Sun" + }, + { + "date": "2021-03-15 00:00:00", + "start": "2021-03-15T04:00:00.000Z", + "end": "2021-03-16T04:00:00.000Z", + "name": "National Hero′s Day (substitute day)", + "type": "public", + "substitute": true, + "rule": "03-14 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2021-04-02 00:00:00", + "start": "2021-04-02T04:00:00.000Z", + "end": "2021-04-03T04:00:00.000Z", + "name": "Good Friday", + "type": "public", + "rule": "easter -2", + "_weekday": "Fri" + }, + { + "date": "2021-04-04 00:00:00", + "start": "2021-04-04T04:00:00.000Z", + "end": "2021-04-05T04:00:00.000Z", + "name": "Easter Sunday", + "type": "observance", + "rule": "easter", + "_weekday": "Sun" + }, + { + "date": "2021-04-05 00:00:00", + "start": "2021-04-05T04:00:00.000Z", + "end": "2021-04-06T04:00:00.000Z", + "name": "Easter Monday", + "type": "public", + "rule": "easter 1", + "_weekday": "Mon" + }, + { + "date": "2021-05-01 00:00:00", + "start": "2021-05-01T04:00:00.000Z", + "end": "2021-05-02T04:00:00.000Z", + "name": "Labour Day", + "type": "public", + "rule": "05-01 and if Sunday then next Monday", + "_weekday": "Sat" + }, + { + "date": "2021-05-24 00:00:00", + "start": "2021-05-24T04:00:00.000Z", + "end": "2021-05-25T04:00:00.000Z", + "name": "Whit Monday", + "type": "public", + "rule": "easter 50", + "_weekday": "Mon" + }, + { + "date": "2021-07-05 00:00:00", + "start": "2021-07-05T04:00:00.000Z", + "end": "2021-07-06T04:00:00.000Z", + "name": "Carnival Monday", + "type": "public", + "rule": "1st Monday in July", + "_weekday": "Mon" + }, + { + "date": "2021-07-06 00:00:00", + "start": "2021-07-06T04:00:00.000Z", + "end": "2021-07-07T04:00:00.000Z", + "name": "Carnival Tuesday", + "type": "public", + "rule": "Tuesday after 1st Monday in July", + "_weekday": "Tue" + }, + { + "date": "2021-08-01 00:00:00", + "start": "2021-08-01T04:00:00.000Z", + "end": "2021-08-02T04:00:00.000Z", + "name": "Emancipation Day", + "type": "public", + "rule": "08-01 and if Sunday then next Monday", + "_weekday": "Sun" + }, + { + "date": "2021-08-02 00:00:00", + "start": "2021-08-02T04:00:00.000Z", + "end": "2021-08-03T04:00:00.000Z", + "name": "Emancipation Day (substitute day)", + "type": "public", + "substitute": true, + "rule": "08-01 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2021-10-27 00:00:00", + "start": "2021-10-27T04:00:00.000Z", + "end": "2021-10-28T04:00:00.000Z", + "name": "Independence Day", + "type": "public", + "rule": "10-27 and if Sunday then next Monday", + "_weekday": "Wed" + }, + { + "date": "2021-12-25 00:00:00", + "start": "2021-12-25T04:00:00.000Z", + "end": "2021-12-26T04:00:00.000Z", + "name": "Christmas Day", + "type": "public", + "rule": "12-25 and if Sunday then next Tuesday", + "_weekday": "Sat" + }, + { + "date": "2021-12-26 00:00:00", + "start": "2021-12-26T04:00:00.000Z", + "end": "2021-12-27T04:00:00.000Z", + "name": "Boxing Day", + "type": "public", + "rule": "12-26 and if Sunday then next Monday", + "_weekday": "Sun" + }, + { + "date": "2021-12-27 00:00:00", + "start": "2021-12-27T04:00:00.000Z", + "end": "2021-12-28T04:00:00.000Z", + "name": "Boxing Day (substitute day)", + "type": "public", + "substitute": true, + "rule": "12-26 and if Sunday then next Monday", + "_weekday": "Mon" + } +] \ No newline at end of file diff --git a/test/fixtures/VC-2022.json b/test/fixtures/VC-2022.json new file mode 100644 index 000000000..80c504bc3 --- /dev/null +++ b/test/fixtures/VC-2022.json @@ -0,0 +1,139 @@ +[ + { + "date": "2022-01-01 00:00:00", + "start": "2022-01-01T04:00:00.000Z", + "end": "2022-01-02T04:00:00.000Z", + "name": "New Year's Day", + "type": "public", + "rule": "01-01 and if Sunday then next Monday", + "_weekday": "Sat" + }, + { + "date": "2022-03-14 00:00:00", + "start": "2022-03-14T04:00:00.000Z", + "end": "2022-03-15T04:00:00.000Z", + "name": "National Hero′s Day", + "type": "public", + "rule": "03-14 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2022-04-15 00:00:00", + "start": "2022-04-15T04:00:00.000Z", + "end": "2022-04-16T04:00:00.000Z", + "name": "Good Friday", + "type": "public", + "rule": "easter -2", + "_weekday": "Fri" + }, + { + "date": "2022-04-17 00:00:00", + "start": "2022-04-17T04:00:00.000Z", + "end": "2022-04-18T04:00:00.000Z", + "name": "Easter Sunday", + "type": "observance", + "rule": "easter", + "_weekday": "Sun" + }, + { + "date": "2022-04-18 00:00:00", + "start": "2022-04-18T04:00:00.000Z", + "end": "2022-04-19T04:00:00.000Z", + "name": "Easter Monday", + "type": "public", + "rule": "easter 1", + "_weekday": "Mon" + }, + { + "date": "2022-05-01 00:00:00", + "start": "2022-05-01T04:00:00.000Z", + "end": "2022-05-02T04:00:00.000Z", + "name": "Labour Day", + "type": "public", + "rule": "05-01 and if Sunday then next Monday", + "_weekday": "Sun" + }, + { + "date": "2022-05-02 00:00:00", + "start": "2022-05-02T04:00:00.000Z", + "end": "2022-05-03T04:00:00.000Z", + "name": "Labour Day (substitute day)", + "type": "public", + "substitute": true, + "rule": "05-01 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2022-06-06 00:00:00", + "start": "2022-06-06T04:00:00.000Z", + "end": "2022-06-07T04:00:00.000Z", + "name": "Whit Monday", + "type": "public", + "rule": "easter 50", + "_weekday": "Mon" + }, + { + "date": "2022-07-04 00:00:00", + "start": "2022-07-04T04:00:00.000Z", + "end": "2022-07-05T04:00:00.000Z", + "name": "Carnival Monday", + "type": "public", + "rule": "1st Monday in July", + "_weekday": "Mon" + }, + { + "date": "2022-07-05 00:00:00", + "start": "2022-07-05T04:00:00.000Z", + "end": "2022-07-06T04:00:00.000Z", + "name": "Carnival Tuesday", + "type": "public", + "rule": "Tuesday after 1st Monday in July", + "_weekday": "Tue" + }, + { + "date": "2022-08-01 00:00:00", + "start": "2022-08-01T04:00:00.000Z", + "end": "2022-08-02T04:00:00.000Z", + "name": "Emancipation Day", + "type": "public", + "rule": "08-01 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2022-10-27 00:00:00", + "start": "2022-10-27T04:00:00.000Z", + "end": "2022-10-28T04:00:00.000Z", + "name": "Independence Day", + "type": "public", + "rule": "10-27 and if Sunday then next Monday", + "_weekday": "Thu" + }, + { + "date": "2022-12-25 00:00:00", + "start": "2022-12-25T04:00:00.000Z", + "end": "2022-12-26T04:00:00.000Z", + "name": "Christmas Day", + "type": "public", + "rule": "12-25 and if Sunday then next Tuesday", + "_weekday": "Sun" + }, + { + "date": "2022-12-26 00:00:00", + "start": "2022-12-26T04:00:00.000Z", + "end": "2022-12-27T04:00:00.000Z", + "name": "Boxing Day", + "type": "public", + "rule": "12-26 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2022-12-27 00:00:00", + "start": "2022-12-27T04:00:00.000Z", + "end": "2022-12-28T04:00:00.000Z", + "name": "Christmas Day (substitute day)", + "type": "public", + "substitute": true, + "rule": "12-25 and if Sunday then next Tuesday", + "_weekday": "Tue" + } +] \ No newline at end of file diff --git a/test/fixtures/VC-2023.json b/test/fixtures/VC-2023.json new file mode 100644 index 000000000..4fd7d672d --- /dev/null +++ b/test/fixtures/VC-2023.json @@ -0,0 +1,129 @@ +[ + { + "date": "2023-01-01 00:00:00", + "start": "2023-01-01T04:00:00.000Z", + "end": "2023-01-02T04:00:00.000Z", + "name": "New Year's Day", + "type": "public", + "rule": "01-01 and if Sunday then next Monday", + "_weekday": "Sun" + }, + { + "date": "2023-01-02 00:00:00", + "start": "2023-01-02T04:00:00.000Z", + "end": "2023-01-03T04:00:00.000Z", + "name": "New Year's Day (substitute day)", + "type": "public", + "substitute": true, + "rule": "01-01 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2023-03-14 00:00:00", + "start": "2023-03-14T04:00:00.000Z", + "end": "2023-03-15T04:00:00.000Z", + "name": "National Hero′s Day", + "type": "public", + "rule": "03-14 and if Sunday then next Monday", + "_weekday": "Tue" + }, + { + "date": "2023-04-07 00:00:00", + "start": "2023-04-07T04:00:00.000Z", + "end": "2023-04-08T04:00:00.000Z", + "name": "Good Friday", + "type": "public", + "rule": "easter -2", + "_weekday": "Fri" + }, + { + "date": "2023-04-09 00:00:00", + "start": "2023-04-09T04:00:00.000Z", + "end": "2023-04-10T04:00:00.000Z", + "name": "Easter Sunday", + "type": "observance", + "rule": "easter", + "_weekday": "Sun" + }, + { + "date": "2023-04-10 00:00:00", + "start": "2023-04-10T04:00:00.000Z", + "end": "2023-04-11T04:00:00.000Z", + "name": "Easter Monday", + "type": "public", + "rule": "easter 1", + "_weekday": "Mon" + }, + { + "date": "2023-05-01 00:00:00", + "start": "2023-05-01T04:00:00.000Z", + "end": "2023-05-02T04:00:00.000Z", + "name": "Labour Day", + "type": "public", + "rule": "05-01 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2023-05-29 00:00:00", + "start": "2023-05-29T04:00:00.000Z", + "end": "2023-05-30T04:00:00.000Z", + "name": "Whit Monday", + "type": "public", + "rule": "easter 50", + "_weekday": "Mon" + }, + { + "date": "2023-07-03 00:00:00", + "start": "2023-07-03T04:00:00.000Z", + "end": "2023-07-04T04:00:00.000Z", + "name": "Carnival Monday", + "type": "public", + "rule": "1st Monday in July", + "_weekday": "Mon" + }, + { + "date": "2023-07-04 00:00:00", + "start": "2023-07-04T04:00:00.000Z", + "end": "2023-07-05T04:00:00.000Z", + "name": "Carnival Tuesday", + "type": "public", + "rule": "Tuesday after 1st Monday in July", + "_weekday": "Tue" + }, + { + "date": "2023-08-01 00:00:00", + "start": "2023-08-01T04:00:00.000Z", + "end": "2023-08-02T04:00:00.000Z", + "name": "Emancipation Day", + "type": "public", + "rule": "08-01 and if Sunday then next Monday", + "_weekday": "Tue" + }, + { + "date": "2023-10-27 00:00:00", + "start": "2023-10-27T04:00:00.000Z", + "end": "2023-10-28T04:00:00.000Z", + "name": "Independence Day", + "type": "public", + "rule": "10-27 and if Sunday then next Monday", + "_weekday": "Fri" + }, + { + "date": "2023-12-25 00:00:00", + "start": "2023-12-25T04:00:00.000Z", + "end": "2023-12-26T04:00:00.000Z", + "name": "Christmas Day", + "type": "public", + "rule": "12-25 and if Sunday then next Tuesday", + "_weekday": "Mon" + }, + { + "date": "2023-12-26 00:00:00", + "start": "2023-12-26T04:00:00.000Z", + "end": "2023-12-27T04:00:00.000Z", + "name": "Boxing Day", + "type": "public", + "rule": "12-26 and if Sunday then next Monday", + "_weekday": "Tue" + } +] \ No newline at end of file diff --git a/test/fixtures/VC-2024.json b/test/fixtures/VC-2024.json new file mode 100644 index 000000000..e61eac1a0 --- /dev/null +++ b/test/fixtures/VC-2024.json @@ -0,0 +1,129 @@ +[ + { + "date": "2024-01-01 00:00:00", + "start": "2024-01-01T04:00:00.000Z", + "end": "2024-01-02T04:00:00.000Z", + "name": "New Year's Day", + "type": "public", + "rule": "01-01 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2024-03-14 00:00:00", + "start": "2024-03-14T04:00:00.000Z", + "end": "2024-03-15T04:00:00.000Z", + "name": "National Hero′s Day", + "type": "public", + "rule": "03-14 and if Sunday then next Monday", + "_weekday": "Thu" + }, + { + "date": "2024-03-29 00:00:00", + "start": "2024-03-29T04:00:00.000Z", + "end": "2024-03-30T04:00:00.000Z", + "name": "Good Friday", + "type": "public", + "rule": "easter -2", + "_weekday": "Fri" + }, + { + "date": "2024-03-31 00:00:00", + "start": "2024-03-31T04:00:00.000Z", + "end": "2024-04-01T04:00:00.000Z", + "name": "Easter Sunday", + "type": "observance", + "rule": "easter", + "_weekday": "Sun" + }, + { + "date": "2024-04-01 00:00:00", + "start": "2024-04-01T04:00:00.000Z", + "end": "2024-04-02T04:00:00.000Z", + "name": "Easter Monday", + "type": "public", + "rule": "easter 1", + "_weekday": "Mon" + }, + { + "date": "2024-05-01 00:00:00", + "start": "2024-05-01T04:00:00.000Z", + "end": "2024-05-02T04:00:00.000Z", + "name": "Labour Day", + "type": "public", + "rule": "05-01 and if Sunday then next Monday", + "_weekday": "Wed" + }, + { + "date": "2024-05-20 00:00:00", + "start": "2024-05-20T04:00:00.000Z", + "end": "2024-05-21T04:00:00.000Z", + "name": "Whit Monday", + "type": "public", + "rule": "easter 50", + "_weekday": "Mon" + }, + { + "date": "2024-07-01 00:00:00", + "start": "2024-07-01T04:00:00.000Z", + "end": "2024-07-02T04:00:00.000Z", + "name": "Carnival Monday", + "type": "public", + "rule": "1st Monday in July", + "_weekday": "Mon" + }, + { + "date": "2024-07-02 00:00:00", + "start": "2024-07-02T04:00:00.000Z", + "end": "2024-07-03T04:00:00.000Z", + "name": "Carnival Tuesday", + "type": "public", + "rule": "Tuesday after 1st Monday in July", + "_weekday": "Tue" + }, + { + "date": "2024-08-01 00:00:00", + "start": "2024-08-01T04:00:00.000Z", + "end": "2024-08-02T04:00:00.000Z", + "name": "Emancipation Day", + "type": "public", + "rule": "08-01 and if Sunday then next Monday", + "_weekday": "Thu" + }, + { + "date": "2024-10-27 00:00:00", + "start": "2024-10-27T04:00:00.000Z", + "end": "2024-10-28T04:00:00.000Z", + "name": "Independence Day", + "type": "public", + "rule": "10-27 and if Sunday then next Monday", + "_weekday": "Sun" + }, + { + "date": "2024-10-28 00:00:00", + "start": "2024-10-28T04:00:00.000Z", + "end": "2024-10-29T04:00:00.000Z", + "name": "Independence Day (substitute day)", + "type": "public", + "substitute": true, + "rule": "10-27 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2024-12-25 00:00:00", + "start": "2024-12-25T04:00:00.000Z", + "end": "2024-12-26T04:00:00.000Z", + "name": "Christmas Day", + "type": "public", + "rule": "12-25 and if Sunday then next Tuesday", + "_weekday": "Wed" + }, + { + "date": "2024-12-26 00:00:00", + "start": "2024-12-26T04:00:00.000Z", + "end": "2024-12-27T04:00:00.000Z", + "name": "Boxing Day", + "type": "public", + "rule": "12-26 and if Sunday then next Monday", + "_weekday": "Thu" + } +] \ No newline at end of file diff --git a/test/fixtures/VC-2025.json b/test/fixtures/VC-2025.json new file mode 100644 index 000000000..6c2b2bc31 --- /dev/null +++ b/test/fixtures/VC-2025.json @@ -0,0 +1,119 @@ +[ + { + "date": "2025-01-01 00:00:00", + "start": "2025-01-01T04:00:00.000Z", + "end": "2025-01-02T04:00:00.000Z", + "name": "New Year's Day", + "type": "public", + "rule": "01-01 and if Sunday then next Monday", + "_weekday": "Wed" + }, + { + "date": "2025-03-14 00:00:00", + "start": "2025-03-14T04:00:00.000Z", + "end": "2025-03-15T04:00:00.000Z", + "name": "National Hero′s Day", + "type": "public", + "rule": "03-14 and if Sunday then next Monday", + "_weekday": "Fri" + }, + { + "date": "2025-04-18 00:00:00", + "start": "2025-04-18T04:00:00.000Z", + "end": "2025-04-19T04:00:00.000Z", + "name": "Good Friday", + "type": "public", + "rule": "easter -2", + "_weekday": "Fri" + }, + { + "date": "2025-04-20 00:00:00", + "start": "2025-04-20T04:00:00.000Z", + "end": "2025-04-21T04:00:00.000Z", + "name": "Easter Sunday", + "type": "observance", + "rule": "easter", + "_weekday": "Sun" + }, + { + "date": "2025-04-21 00:00:00", + "start": "2025-04-21T04:00:00.000Z", + "end": "2025-04-22T04:00:00.000Z", + "name": "Easter Monday", + "type": "public", + "rule": "easter 1", + "_weekday": "Mon" + }, + { + "date": "2025-05-01 00:00:00", + "start": "2025-05-01T04:00:00.000Z", + "end": "2025-05-02T04:00:00.000Z", + "name": "Labour Day", + "type": "public", + "rule": "05-01 and if Sunday then next Monday", + "_weekday": "Thu" + }, + { + "date": "2025-06-09 00:00:00", + "start": "2025-06-09T04:00:00.000Z", + "end": "2025-06-10T04:00:00.000Z", + "name": "Whit Monday", + "type": "public", + "rule": "easter 50", + "_weekday": "Mon" + }, + { + "date": "2025-07-07 00:00:00", + "start": "2025-07-07T04:00:00.000Z", + "end": "2025-07-08T04:00:00.000Z", + "name": "Carnival Monday", + "type": "public", + "rule": "1st Monday in July", + "_weekday": "Mon" + }, + { + "date": "2025-07-08 00:00:00", + "start": "2025-07-08T04:00:00.000Z", + "end": "2025-07-09T04:00:00.000Z", + "name": "Carnival Tuesday", + "type": "public", + "rule": "Tuesday after 1st Monday in July", + "_weekday": "Tue" + }, + { + "date": "2025-08-01 00:00:00", + "start": "2025-08-01T04:00:00.000Z", + "end": "2025-08-02T04:00:00.000Z", + "name": "Emancipation Day", + "type": "public", + "rule": "08-01 and if Sunday then next Monday", + "_weekday": "Fri" + }, + { + "date": "2025-10-27 00:00:00", + "start": "2025-10-27T04:00:00.000Z", + "end": "2025-10-28T04:00:00.000Z", + "name": "Independence Day", + "type": "public", + "rule": "10-27 and if Sunday then next Monday", + "_weekday": "Mon" + }, + { + "date": "2025-12-25 00:00:00", + "start": "2025-12-25T04:00:00.000Z", + "end": "2025-12-26T04:00:00.000Z", + "name": "Christmas Day", + "type": "public", + "rule": "12-25 and if Sunday then next Tuesday", + "_weekday": "Thu" + }, + { + "date": "2025-12-26 00:00:00", + "start": "2025-12-26T04:00:00.000Z", + "end": "2025-12-27T04:00:00.000Z", + "name": "Boxing Day", + "type": "public", + "rule": "12-26 and if Sunday then next Monday", + "_weekday": "Fri" + } +] \ No newline at end of file