
    x7#h>              
           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mZmZmZmZ d dlmZmZ d dlmZmZmZmZ d dlmZ d dlmZmZmZmZ  G d d	eeeeee      Z  G d
 de       Z! G d de       Z" G d d      Z#y)    )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                   z     e Zd ZdZdZdZefZ ed      Z	e
efZdZehZdZ fdZdefd	Zd
efdZd Zd Z xZS )HongKongu  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](https://www.elegislation.gov.hk/hk/cap57!en-zh-Hant-HK?INDEX_CS=N&xpid=ID_1438403463460_002)
        * [Holidays for 2010-2025](https://www.labour.gov.hk/eng/news/holidays_list.htm)

    General Holidays:
        * [Cap. 149 General Holidays Ordinance](https://www.elegislation.gov.hk/hk/cap149!en-zh-Hant-HK?INDEX_CS=N)
        * [Holidays for 2007-2025](https://www.gov.hk/en/about/abouthk/holiday/index.htm)
    HKzh_HKu   %s（慶祝）)en_HKen_USthzh_CNr   i  c                 N   t        j                  |        t        j                  |        t        j                  |        t	        j                  | |j                  dd              t        j                  | t               |j                  dt               t        |   |i | y )N preferred_discretionary_holidaysobserved_rule)r   __init__r   r   r   popr   HongKongStaticHolidays
setdefaultr   super)selfargskwargs	__class__s      [/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/holidays/countries/hongkong.pyr'   zHongKong.__init__P   s    ((.""4(&&t,&//&**?F	
 	&<=/+>?$)&)    returnc                    | j                   }| j                  dk\  r#t        |d      }t        d      }t        d      }nt        d      }t        d      }| j	                  |      r]d| j                  cxk  rdk  r*n n'| j                  t        d      t        |d             |S | j                  |t        |d             |S | j                  ||       |S )	N     u   中秋節翌日u   中秋節後第二日u	   中秋節  i  )_mid_autumn_festival_yearr   tr
_is_sunday_add_holiday)r,   mid_autumn_datenamesecond_names       r0   _add_mid_autumnzHongKong._add_mid_autumn[   s     33::("=O'(D45K k?D./K???+tzz)T)!!"[/:or3RS
  !!+z/2/NO  dO4r1   day_three_start_yearc                    t        d      }t        d      }t        d      }t        d      }t        d      }| j                  }| j                  dk\  r| j                  |      s"| j	                  |      s| j                  |      r2| j                  dk\  r| j                  |       n| j                  |       | j                  |      s| j                  |       | j	                  |      s| j                  |       | j                  |      s| j                  |       y y | j                  |       | j                  |       | j                  |k\  r| j                  |       y y )Nu   農曆年初一u   農曆年初一的前一日u   農曆年初二u   農曆年初三u   農曆年初四r6   i  )r:   _chinese_new_yearr9   
_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,   rA   r>   preceding_day_lunarsecond_day_lunarthird_day_lunarfourth_day_lunardt_lunar_new_years           r0   _add_lunar_new_yearzHongKong._add_lunar_new_yearu   s?   #$ !>?/0.//0 22:: 12$$%67??#45::%889IJ334GH??#45//5$$%67334DE??#4555oF 6 ++D1//0@Azz1155oF 2r1   c                 H   | j                   dk  ry | j                   dk\  r)| j                  | j                  t        d                   | j	                  d       | j                   dk\  r| j                  t        d             | j                   dk\  r| j                  t        d             | j                   d	k\  r| j                  t        d
             | j                  | j                  t        d                   | j                   dk\  r)| j                  | j                  t        d                   | j                   dk\  r)| j                  | j                  t        d                   | j                  | j                  t        d                   | j                   dk\  r)| j                  | j                  t        d                   | j                         }| j                   dk\  r+| j                  t        d            }| j                  |       | j                   dk\  rKt        d      }| j                  |      }| j                  ||||k(  s|k(  rt         t"        z   nt$               t&        | j(                  v r)| j                  | j+                  t        d                   | j                   dk\  r)| j                  | j-                  t        d                   t.        | j(                  v r*| j                  | j1                  t        d                   y y )Ni  i     一月一日rA   i     耶穌受難節i     耶穌受難節翌日i     復活節星期一	   清明節i     佛誕  	   勞動節	   端午節  $   香港特別行政區成立紀念日	   重陽節	   國慶日)r>   ruleu   冬節i     聖誕節後第一個周日	   聖誕節)r9   _add_observed_add_new_years_dayr:   rP   _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_1r@   _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        r0   _populate_public_holidaysz"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O+u/G -/FF(   dCCCt99"X,GH::t::2>[;\]^===t66r+GH >r1   c                    | j                  t        d      r| j                  t        d             n| j	                  t        d             | j                  d       | j                  dk\  rv| j                  }| j                  |      s|t        | j                  d      k(  r&| j                  t        d      t        |d             n| j                  t        d             | j                  t        d             | j                  t        d	             | j                  dk\  r*| j                  k(  r| j                  t        d
             n| j                  t        d             | j                  dk\  r]| j                   }| j                  |      r&| j                  t        d      t        |d             n| j#                  t        d             | j                  dk\  rK| j                  t$        d      r| j'                  t        d             n| j)                  t        d             | j                  dk\  r]| j*                  }| j                  |      r&| j                  t        d      t        |d             n| j-                  t        d             | j                  dk\  rK| j                  t.        d      r| j1                  t        d             n| j3                  t        d             | j5                         }| j                  dk\  r]| j6                  }| j                  |      r&| j                  t        d      t        |d             n| j9                  t        d             | j                  dk\  rt;        | j                  t<        d      }t        d      }| j                  |      s
||k(  s|k(  r"| j                  || j?                  |             n| jA                  t        d             | j                  dk  r| jC                  |       t        d      }t        d      }t        d      }	| jD                  }
| j                  |
      r#| jG                  |       | jI                  |	       nV| jK                  |
      r#| jM                  |       | jI                  |       n"| jM                  |       | jG                  |       d| j                  cxk  rdk  rrn not        d       }| j                  d!k\  r#| jO                  |       | jQ                  |       n2| j                  dk7  r| jS                  |       n| jU                  |       | j                  d"k  rN| jW                  t        d#             | jY                  t        d$             | j[                  t        d%             | j                  dk  rt        d&      }| j                  d!k\  r#| j]                  |       | j_                  |       y | j                  dk\  r#| ja                  |       | j]                  |       y | jc                  |       y y )'Nr5   u   一月一日翌日rR   r4   rS   u   清明節翌日rW   rT   rU   u   復活節星期一翌日rV   rY   u   佛誕翌日rX   u   勞動節翌日rZ   u   端午節翌日r[   r\   *   香港特別行政區成立紀念日翌日r]   u   重陽節翌日r^      國慶日翌日r_     rb   ra   u   聖誕節後第二個周日i  i     英女皇壽辰r6   i  u   靈降臨節後星期一u   中華民國國慶日u   和平紀念日後星期一u   重光紀念日)2r;   r   _add_new_years_day_twor:   rd   rP   r9   _qingming_festivalr   _easter_sundayr<   rh   re   rf   _add_easter_tuesdayrg   _chinese_birthday_of_buddhari   r   _add_labor_day_tworj   _dragon_boat_festivalrk   r   _add_holiday_jul_2rl   r@   _double_ninth_festivalrm   r   r   _get_next_workdayrn   _add_holiday_oct_2_christmas_dayrp   _add_christmas_day_threerE   rq   _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=   rr   dtr>   first_after_christmassecond_after_christmasdt_christmass              r0   _populate_optional_holidaysz$HongKong._populate_optional_holidays   s    ??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!!"^"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"bO&;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((. r1   )__name__
__module____qualname____doc__countrydefault_languager   (default_preferred_discretionary_holidaysr:   observed_labelr   r   supported_categoriessupported_languagesr   weekend
start_yearr'   r   r@   intrP   rt   r   __classcell__)r/   s   @r0   r   r   .   ss     G09|,()N$f-DeGJ	* 4#G #GJHITO/r1   r   c                       e Zd Zy)r   Nr   r   r    r1   r0   r   r   v      r1   r   c                       e Zd Zy)HKGNr   r   r1   r0   r   r   z  r   r1   r   c            	          e Zd Z ed      Z ed      Z ed      Z ed      Z ed      Z ed      Z	 ed      Z
 ed      Zed	efed
efedefedefd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fede	fede
ffedefedefdZy)r)   u-   英國王儲查理斯王子與戴安娜婚禮u3   英女王伊利沙伯二世伉儷訪港的第二天ry   rv   u/   中國人民抗日戰爭勝利70周年紀念日u   抗日戰爭勝利紀念日rw   u   額外公眾假期            )    r\                    )r   r   r\   rx   rY   r   N)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   r1   r0   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!r1   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   holidays.mixinsr   holidays.observed_holiday_baser   r   r   r   r   r   r   r)   r   r1   r0   <module>r      s     !    0  ; E/"E/P
	 		( 	1 1r1   