
    x7#h0&                         d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZ d dlmZmZmZ d dlmZmZmZmZmZ  G d deeee      Z G d d	e      Z G d
 de      Z G d d      Zy)    )date)Optional)JANAPRMAYJUNJULSEPOCTDEC)ChristianHolidaysInternationalHolidaysStaticHolidays)ObservedHolidayBaseSAT_SUN_TO_NEXT_WORKDAYSUN_TO_NEXT_WORKDAYSAT_TO_NONESUN_TO_NONEc                   V     e Zd ZdZdZdZdZd Zdede	e
ee   f   f fdZd
d	Z xZS )Jerseya~  Jersey holidays.

    References:
        * <https://en.wikipedia.org/wiki/Public_holidays_in_Jersey>
        * [2010 Revision](https://www.jerseylaw.je/laws/current/Pages/15.560.20.aspx)
        * [1952 Revision](https://www.jerseylaw.je/laws/superseded/Pages/2006/15.560.20.aspx)
        * [1952 as enacted](https://www.jerseylaw.je/laws/enacted/Pages/RO-3038.aspx)
        * [Bank Holidays](https://www.jerseylaw.je/laws/enacted/Pages/Jersey%20RO%205331.aspx)
        * [May Bank Holiday](https://www.jerseylaw.je/laws/enacted/Pages/Jersey%20RO%206795.aspx)

    Checked with:
        * [From 2010 onwards](https://www.gov.je/Leisure/Events/WhatsOn/pages/bankholidaydates.aspx)

    This has only been cross-checked with the official source from 2010 onwards.

    Jersey has the same public holidays as the United Kingdom (England Subdivision)
    - plus an extra day on 9 May, to mark Liberation Day (ignoring special holidays
    like the Corn Riots Anniversary in 2021).

    If a bank holiday is on a sunday, a substitute weekday becomes a bank holiday,
    normally the following Monday. From 2004 onwards this also applies to saturday.
    JEz%s (substitute day)i  c                     t        j                  |        t        j                  |        t        j                  | t               |j                  dt               t        j                  | g|i | y )Nobserved_rule)r   __init__r   r   JerseyStaticHolidays
setdefaultr   r   )selfargskwargss      Y/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/holidays/countries/jersey.pyr   zJersey.__init__8   sX    ""4(&&t,&:;/+BC$$T;D;F;    dtreturnc           	          |j                  d|t        dt        d      k  rt        n| j                         t        |   |fi |S )Nrulei     )r   r   r   r   _observed_rulesuper_add_observed)r   r"   r   	__class__s      r    r)   zJersey._add_observed?   sH     	2T30C+C'I\I\	
 w$R2622r!   c                    | j                  | j                  d             | j                  d       | j                  d       | j                  dk\  rE| j                  dk(  rdnd}| j                  dk(  r| j                  |       n| j                  |       | j                  d	k\  rYt        d
ft        d
ft        dfd}d}| j                  |v r | j                  ||| j                            n| j                  |       | j                  dk  r| j                  d       d}| j                  d	k\  r| j                  |       n| j                  |       | j                  d      }| j                  d      }| j                  |       | j                  |       | j                  | j                  d      | j                  dk  rt         t"        z          y t"               y )NNew Year's DayzGood FridayzEaster Mondayi    zMay Bank HolidayzEarly May Bank Holidayi  i        )      zSpring Bank Holidayi  zWhit MondayzSummer Bank HolidayzChristmas Day
Boxing DayLiberation Day  )r%   )r)   _add_new_years_day_add_good_friday_add_easter_monday_year_add_holiday_may_8_add_holiday_1st_mon_of_mayr   _add_holiday_add_holiday_last_mon_of_may_add_whit_monday_add_holiday_last_mon_of_aug_add_holiday_1st_mon_of_sep_add_christmas_day_add_christmas_day_two_add_holiday_may_9r   r   )r   namespring_bank_datessummer_bank_holidaychristmas_day
boxing_days         r    _populate_public_holidaysz Jersey._populate_public_holidaysG   s    	4223CDE 	m, 	0 ::)-t);%AYDzzT!''-006 ::AhAhAh!
 )Dzz..!!$(9$**(EF11$7
 ::!!-0 4::--.AB,,-@A //@ 00>
=):& 	##$45.2jjD.@{* 	 	
 GR 	 	
r!   )r#   N)__name__
__module____qualname____doc__countryobserved_label
start_yearr   r   tupleboolr   r)   rI   __classcell__)r*   s   @r    r   r      sE    . G*NJ<3 35x~9M3N 3O
r!   r   c                       e Zd Zy)r   NrJ   rK   rL    r!   r    r   r          r!   r   c                       e Zd Zy)JEYNrU   rV   r!   r    rY   rY      rW   r!   rY   c                   X   e Zd ZdZdZdZdZi dedefdedd	fd
edefdeddfde	defde
ddfdedefdeddfde	ddfdeddfdedd fd!e	d"d#fd$edd%fd&edd'fed(d)ffd*e	d"d+fd,ed-d.fZe
d/efedefe
d/efe
d/efedefe
d/efe
d/efe
d/efedefe
d/efe
d/efedefe
d/efd0Zy1)2r   a  Jersey special holidays.

    References:
        * <https://www.gov.je/News/2019/pages/vedaypublicholiday8may.aspx>
        * <https://www.gov.je/news/2021/pages/cornriots.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/Jersey%20R%20%20O%209288.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/Jersey%20R%20%20O%209317.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/Jersey%20RO%2042-2001.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/Jersey%20RO%206350.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/Jersey%20RO%206514.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/Jersey%20RO%206924.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/Jersey%20RO%207689.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/Jersey%20RO%207877.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/Jersey%20RO%208451.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/Jersey%20RO%208596.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/RO-050-2021.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/RO-108-2009.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/RO-3038.aspx>
        * <https://www.jerseylaw.je/laws/enacted/Pages/RO-036-2024.aspx>
    r,   r3   z+The visit of Her Majesty Queen Elizabeth IIi          zQueen's Silver Jubileei          zWedding of Charles and Dianai          zMillennium Celebrationsi     r0      zQueen's Golden Jubileer5   	   r4   i  z Wedding of William and Catheriner1      zQueen's Diamond Jubileei     z75th Anniversary of VE Dayi  zCorn Riots Anniversaryr2   zQueen's Platinum Jubilee   z)Funeral of Her Majesty Queen Elizabeth IIi  z*Coronation of His Majesty King Charles IIIr-      z;The visit of His Majesty King Charles III and Queen Camilla   )i  r\   r_   i  i  i  i  i  i  i  rb   i  i  N)rJ   rK   rL   rM   new_years_day_in_lieuboxing_day_in_lieuelizabeth_2_royal_visitr	   r   r   r   r   r
   special_public_holidaysr    special_public_holidays_observedrV   r!   r    r   r      s   D - & LsB/0sA/0 	sB/0 	sB67	
 	sB/0 	sB12 	sB/0 	sA/0 	sA'( 	sB:; 	sA01 	sA34 	sB01 	!/0"AB
& 	sACD'( 	sBUV). B*+A,-B*+B*+A,-B*+B*+B*+A,-B*+B*+A,-B*+($r!   r   N)datetimer   typingr   holidays.calendars.gregorianr   r   r   r   r	   r
   r   r   holidays.groupsr   r   r   holidays.observed_holiday_baser   r   r   r   r   r   r   rY   r   rV   r!   r    <module>rv      sb      O O O T T {
 "35JN {
|	 		& 	O Or!   