# SPDX-License-Identifier: MIT
# Holiday file for Puerto Rico
# Derived from the Python holidays project at
# https://github.com/vacanza/holidays
#
# See important caveats in the README file in this directory.

OMIT 1 January MSG %"New Year's Day%" %! %b.
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum($T-1) == 0] MSG %"New Year's Day (observed)%" %! %b.
OMIT 6 January MSG %"Epiphany%" %! %b.
REM Third Monday in January ADDOMIT SCANFROM -28 MSG %"Martin Luther King Jr. Day%" %! %b.
REM Third Monday in February ADDOMIT SCANFROM -28 MSG %"Presidents' Day%" %! %b.
OMIT 22 March MSG %"Emancipation Day%" %! %b.
REM 23 March ADDOMIT SCANFROM -28 SATISFY [wkdaynum($T-1) == 0] MSG %"Emancipation Day (observed)%" %! %b.
OMIT [easterdate($Uy)-2] MSG %"Good Friday%" %! %b.
REM Last Monday in May ADDOMIT SCANFROM -28 MSG %"Memorial Day%" %! %b.
REM 18 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum($T+1) == 6] MSG %"Juneteenth National Independence Day (observed)%" %! %b.
OMIT 19 June MSG %"Juneteenth National Independence Day%" %! %b.
REM 20 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum($T-1) == 0] MSG %"Juneteenth National Independence Day (observed)%" %! %b.
REM 3 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum($T+1) == 6] MSG %"Independence Day (observed)%" %! %b.
OMIT 4 July MSG %"Independence Day%" %! %b.
REM 5 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum($T-1) == 0] MSG %"Independence Day (observed)%" %! %b.
OMIT 25 July MSG %"Constitution Day%" %! %b.
REM 26 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum($T-1) == 0] MSG %"Constitution Day (observed)%" %! %b.
REM First Monday in September ADDOMIT SCANFROM -28 MSG %"Labor Day%" %! %b.
REM 10 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum($T+1) == 6] MSG %"Veterans Day (observed)%" %! %b.
OMIT 11 November MSG %"Veterans Day%" %! %b.
REM 12 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum($T-1) == 0] MSG %"Veterans Day (observed)%" %! %b.
OMIT 19 November MSG %"Discovery Day%" %! %b.
REM 20 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum($T-1) == 0] MSG %"Discovery Day (observed)%" %! %b.
REM Fourth Thursday in November ADDOMIT SCANFROM -28 MSG %"Thanksgiving%" %! %b.
REM 24 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum($T+1) == 6] MSG %"Christmas Day (observed)%" %! %b.
OMIT 25 December MSG %"Christmas Day%" %! %b.
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum($T-1) == 0] MSG %"Christmas Day (observed)%" %! %b.
REM 31 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum($T+1) == 6] MSG %"New Year's Day (observed)%" %! %b.

# Optional holidays
REM 14 February MSG %"Valentine's Day%" %! %b.
REM 17 March MSG %"Saint Patrick's Day%" %! %b.
REM 31 October MSG %"Halloween%" %! %b.
