
    \h?              
           S SK Jr  S SKJr  S SKJrJrJrJrJ	r	J
r
JrJrJrJrJrJr  S SKJrJr  S SKJrJrJrJr  S SKJr  S SKJrJrJrJr   " S S	\\\\\\5      r  " S
 S\ 5      r! " S S\ 5      r" " S S5      r#g)    )date)gettext)JANMAYJUNJULAUGSEPOCTDECSUN
_timedelta	CHRISTMASWINTER_SOLSTICE)OPTIONALPUBLIC)ChineseCalendarHolidaysChristianHolidaysInternationalHolidaysStaticHolidays)PreferredDiscretionaryHolidays)ObservedHolidayBaseSAT_SUN_TO_NEXT_WORKDAYSUN_TO_NEXT_WORKDAYWORKDAY_TO_NEXT_WORKDAYc                      ^  \ rS rSrSrSrSr\4r\	" S5      r
\\4rSr\1rSrU 4S jrS	\4S
 jrS\4S jrS rS rSrU =r$ )HongKong.   uC  Hong Kong holidays.

References:
    * [English Wikipedia](https://en.wikipedia.org/wiki/Public_holidays_in_Hong_Kong)
    * [Chinese Wikipedia](https://zh.wikipedia.org/wiki/香港節日與公眾假期)

Statutory Holidays:
    * [Section 39 of Cap. 57 Employment Ordinance](http://archive.today/2025.04.29-125537/https://www.elegislation.gov.hk/hk/cap57!en-zh-Hant-HK?INDEX_CS=N&xpid=ID_1438403463460_002)
    * [Holidays for 2010-2025](https://web.archive.org/web/20250402133857/https://www.labour.gov.hk/eng/news/holidays_list.htm)

General Holidays:
    * [Cap. 149 General Holidays Ordinance](http://archive.today/2025.04.29-125900/https://www.elegislation.gov.hk/hk/cap149!en-zh-Hant-HK?INDEX_CS=N)
    * [Holidays for 2007-2025](https://web.archive.org/web/20250116080351/https://www.gov.hk/en/about/abouthk/holiday/index.htm)
HKzh_HKu   %s（慶祝）)en_HKen_USthzh_CNr    i  c                 X  > [         R                  " U 5        [        R                  " U 5        [        R                  " U 5        [        R                  " XR                  SS 5      5        [        R                  " U [        5        UR                  S[        5        [        TU ]  " U0 UD6  g )N preferred_discretionary_holidaysobserved_rule)r   __init__r   r   r   popr   HongKongStaticHolidays
setdefaultr   super)selfargskwargs	__class__s      nC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\holidays/countries/hongkong.pyr(   HongKong.__init__P   s    ((.""4(&&t,&//**?F	
 	&<=/+>?$)&)    returnc                    U R                   nU R                  S:  a#  [        US5      n[        S5      n[        S5      nO[        S5      n[        S5      nU R	                  U5      (       a`  SU R                  s=::  a  S::  a*  O  O'U R                  [        S5      [        US5      5        U$ U R                  U[        US5      5         U$ U R                  X!5        U$ )	N     u   中秋節翌日u   中秋節後第二日u	   中秋節  i  )_mid_autumn_festival_yearr   tr
_is_sunday_add_holiday)r-   mid_autumn_datenamesecond_names       r1   _add_mid_autumnHongKong._add_mid_autumn[   s     33::("=O'(D45K k?D./K???++tzz)T)!!"[/:or3RS
  !!+z/2/NO  d4r3   day_three_start_yearc                 
   [        S5      n[        S5      n[        S5      n[        S5      n[        S5      nU R                  nU R                  S:  a  U R                  U5      (       d,  U R	                  U5      (       d  U R                  U5      (       a3  U R                  S:  a  U R                  U5        OU R                  U5        U R                  U5      (       d  U R                  U5        U R	                  U5      (       d  U R                  U5        U R                  U5      (       d  U R                  U5        g g U R                  U5        U R                  U5        U R                  U:  a  U R                  U5        g g )Nu   農曆年初一u   農曆年初一的前一日u   農曆年初二u   農曆年初三u   農曆年初四r8   i  )r<   _chinese_new_yearr;   
_is_friday_is_saturdayr=   _add_chinese_new_years_day_four_add_chinese_new_years_eve_add_chinese_new_years_day_add_chinese_new_years_day_two _add_chinese_new_years_day_three)r-   rD   r@   preceding_day_lunarsecond_day_lunarthird_day_lunarfourth_day_lunardt_lunar_new_years           r1   _add_lunar_new_yearHongKong._add_lunar_new_yearu   sQ   #$ !>?/0.//0 22:: 122$$%677??#455::%889IJ334GH??#455//5$$%677334DE??#45555oF 6 ++D1//0@Azz1155oF 2r3   c                 \   U R                   S::  a  g U R                   S:  a)  U R                  U R                  [        S5      5      5        U R	                  SS9  U R                   S:  a  U R                  [        S5      5        U R                   S:  a  U R                  [        S5      5        U R                   S	:  a  U R                  [        S
5      5        U R                  U R                  [        S5      5      5        U R                   S:  a)  U R                  U R                  [        S5      5      5        U R                   S:  a)  U R                  U R                  [        S5      5      5        U R                  U R                  [        S5      5      5        U R                   S:  a)  U R                  U R                  [        S5      5      5        U R                  5       nU R                   S:  a+  U R                  [        S5      5      nU R                  U5        U R                   S:  aI  [        S5      nU R                  U5      nU R                  UUXA:X  d  UW:X  a  [         ["        -   O[$        S9  [&        U R(                  ;   a)  U R                  U R+                  [        S5      5      5        U R                   S:  a)  U R                  U R-                  [        S5      5      5        [.        U R(                  ;   a*  U R                  U R1                  [        S5      5      5        g g )Ni  i     一月一日rD   i     耶穌受難節i     耶穌受難節翌日i     復活節星期一	   清明節i     佛誕  	   勞動節	   端午節  $   香港特別行政區成立紀念日	   重陽節	   國慶日)r@   ruleu   冬節i     聖誕節後第一個周日	   聖誕節)r;   _add_observed_add_new_years_dayr<   rS   _add_good_friday_add_holy_saturday_add_easter_monday_add_qingming_festival_add_chinese_birthday_of_buddha_add_labor_day_add_dragon_boat_festival_add_holiday_jul_1rB   _add_double_ninth_festival_add_holiday_oct_1r   r   r   r   r&   _add_dongzhi_festival_add_christmas_day_twor   _add_christmas_day)r-   r?   dt_double_ninthr@   oct_1s        r1   _populate_public_holidays"HongKong._populate_public_holidays   s    ::::t66r.7IJK  d ;::!!"%6"78::##B'>$?@::##B';$<= 	466r+GH::tCCBxLQR::t222k?CD 	499"[/JK::t66r:`7abc..0::"==boNO/::k?D++D1E+u/G -/FF(   dCCCt99"X,GH::t::2>[;\]^===t66r+GH >r3   c                    U R                  [        S5      (       a  U R                  [        S5      5        OU R	                  [        S5      5        U R                  SS9  U R                  S:  a|  U R                  nU R                  U5      (       d  U[        U R                  S5      :X  a&  U R                  [        S5      [        US5      5        OU R                  [        S5      5        U R                  [        S5      5        U R                  [        S	5      5        U R                  S:  a+  WU R                  :X  a  U R                  [        S
5      5        OU R                  [        S5      5        U R                  S:  ab  U R                   nU R                  U5      (       a&  U R                  [        S5      [        US5      5        OU R#                  [        S5      5        U R                  S:  aP  U R                  [$        S5      (       a  U R'                  [        S5      5        OU R)                  [        S5      5        U R                  S:  ab  U R*                  nU R                  U5      (       a&  U R                  [        S5      [        US5      5        OU R-                  [        S5      5        U R                  S:  aP  U R                  [.        S5      (       a  U R1                  [        S5      5        OU R3                  [        S5      5        U R5                  5       nU R                  S:  ab  U R6                  nU R                  U5      (       a&  U R                  [        S5      [        US5      5        OU R9                  [        S5      5        U R                  S:  a  [;        U R                  [<        S5      n[        S5      nU R                  U5      (       d  Xd:X  d  UW:X  a!  U R                  XpR?                  U5      5        OU RA                  [        S5      5        U R                  S::  a  U RC                  U5        [        S5      n[        S5      n[        S5      n	U RD                  n
U R                  U
5      (       a#  U RG                  U5        U RI                  U	5        O[U RK                  U
5      (       a#  U RM                  U5        U RI                  U5        O"U RM                  U5        U RG                  U5        SU R                  s=::  a  S::  at  O  Oq[        S 5      nU R                  S!:  a#  U RO                  U5        U RQ                  U5        O3U R                  S:w  a  U RS                  U5        OU RU                  U5        U R                  S"::  aN  U RW                  [        S#5      5        U RY                  [        S$5      5        U R[                  [        S%5      5        U R                  S::  a  [        S&5      nU R                  S!:  a#  U R]                  U5        U R_                  U5        g U R                  S:  a#  U Ra                  U5        U R]                  U5        g U Rc                  U5        g g )'Nr7   u   一月一日翌日rV   r6   rW   u   清明節翌日r[   rX   rY   u   復活節星期一翌日rZ   r]   u   佛誕翌日r\   u   勞動節翌日r^   u   端午節翌日r_   r`   *   香港特別行政區成立紀念日翌日ra   u   重陽節翌日rb      國慶日翌日rc     rf   re   u   聖誕節後第二個周日i  i     英女皇壽辰r8   i  u   靈降臨節後星期一u   中華民國國慶日u   和平紀念日後星期一u   重光紀念日)2r=   r   _add_new_years_day_twor<   rh   rS   r;   _qingming_festivalr   _easter_sundayr>   rl   ri   rj   _add_easter_tuesdayrk   _chinese_birthday_of_buddharm   r   _add_labor_day_tworn   _dragon_boat_festivalro   r   _add_holiday_jul_2rp   rB   _double_ninth_festivalrq   r   r   _get_next_workdayrr   _add_holiday_oct_2_christmas_dayrt   _add_christmas_day_threerH   ru   _add_holiday_2nd_sat_of_jun'_add_holiday_2_days_past_2nd_sat_of_jun_add_holiday_apr_21_add_holiday_jun_5_add_whit_monday_add_holiday_2nd_mon_of_oct&_add_holiday_1_day_past_2nd_sun_of_nov_add_holiday_last_mon_of_aug)_add_holiday_2_days_prior_last_mon_of_aug_add_holiday_1st_mon_of_aug_add_holiday_aug_30)r-   dt_qingmingdt_birthday_of_buddhadt_dragon_boatr?   rv   dtr@   first_after_christmassecond_after_christmasdt_christmass              r1   _populate_optional_holidays$HongKong._populate_optional_holidays   s4    ??3""''+?(@A ##B~$67  d ;::11K{++{jI\I\^`>a/a!!"%6"7KQS9TU ++B{O< 	b!234 	#: ;<::+1D1D"D$$R(B%CD ##B';$<=::$($D$D!455!!"^"4jAVXZ6[\ 44R\B::sA&&''+<(=> ##B{O4::!77N~..!!"%6"7NTV9WX ..r+?::sA&&''+W(XY ''+Q(RS..0::"99O//!!"%6"7OUW9XY //;@::djj#q)B'(Dr""b&;r_?T!!$(>(>r(BC '';8zzT!''- + "#@ A!#$A!B**??<((''(=>))*@A|,,##D)))*?@##D)''(=> 4::%%'(DzzT!006<<TB::%,,T2++D1::!!"%?"@A ,,R0G-HI 77;X8YZ::'(DzzT!11$7>>tDt#00611$7((. r3    )__name__
__module____qualname____firstlineno____doc__countrydefault_languager   (default_preferred_discretionary_holidaysr<   observed_labelr   r   supported_categoriessupported_languagesr   weekend
start_yearr(   r   rB   intrS   rx   r   __static_attributes____classcell__)r0   s   @r1   r   r   .   sy     G09|,()N$f-DeGJ	* 4#G #GJHITO/ O/r3   r   c                       \ rS rSrSrg)r   iv  r   Nr   r   r   r   r   r   r3   r1   r   r   v      r3   r   c                       \ rS rSrSrg)HKGiz  r   Nr   r   r3   r1   r   r   z  r   r3   r   c            	          \ rS rSr\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r	\" S5      r
\" S5      r\" S	5      r\S
\4\S\4\S\4\S\	4S.r\S
\4\S\4\S\4\S\4\S\4\S\
4\S\44\S\
4\S\44\S\4\S\	4S.rSrg)r*   i~  u-   英國王儲查理斯王子與戴安娜婚禮u3   英女王伊利沙伯二世伉儷訪港的第二天r~   r{   u/   中國人民抗日戰爭勝利70周年紀念日u   抗日戰爭勝利紀念日r|   u   額外公眾假期            )    r`                    )r   r   r`   r}   r]   r   r   N)r   r   r   r   r<   wedding_of_charles_and_dianaqueen_visit_hkqueen_birthday%day_following_hksar_establishment_dayvictory_70th_anniversarywar_victory_dayday_following_national_dayadditional_public_holidayr   r   r
   special_public_holidaysr   r	   r   special_optional_holidaysr   r   r3   r1   r*   r*   ~  s.   #%&U#V  MNN )*N -//[,\)  ""ST 67O "$$5!6 !##7 8 B45B'A<=A/0	 B45B'"n%"n%!:;"o&!/0
 "o&!/0
 B12A/0!r3   r*   N)$datetimer   r   r<   holidays.calendars.gregorianr   r   r   r   r	   r
   r   r   r   r   r   r   holidays.constantsr   r   holidays.groupsr   r   r   r   0holidays.mixins.preferred_discretionary_holidaysr   holidays.observed_holiday_baser   r   r   r   r   r   r   r*   r   r3   r1   <module>r      s     !    0  \ E/"E/P
	 		( 	1 1r3   