
    x7#h0J              	           d dl m Z d dl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 d dlmZmZmZ  G d deeeee      Z G d d	e      Z G d
 de      Z G d d      Zy)    )gettext)FEBSEPOCTDEC)
GOVERNMENT	MANDATORYPUBLIC)ChineseCalendarHolidaysChristianHolidaysInternationalHolidaysStaticHolidays)ObservedHolidayBaseSUN_TO_NEXT_WORKDAYSAT_SUN_TO_NEXT_WORKDAYc                   p     e Zd ZdZdZdZdZdZdddddddZe	e
efZd	Z fd
Zd Zd Zd Zd Zd Z xZS )Macauu@  Macau holidays.

    References:
        * [Decreto-Lei n.º 4/82/M](https://bo.io.gov.mo/bo/i/82/04/declei04.asp)
        * [Decreto-Lei n.º 38/87/M](https://bo.io.gov.mo/bo/i/87/25/declei38.asp)
        * [Decreto-Lei n.º 15/93/M](https://bo.io.gov.mo/bo/i/93/17/declei15.asp)
        * [Decreto-Lei n.º 7/97/M](https://bo.io.gov.mo/bo/i/97/11/declei07.asp)
        * [Portaria n.º 85/97/M](https://bo.io.gov.mo/bo/i/97/15/port85.asp)
        * [Portaria n.º 242/98/M](https://bo.io.gov.mo/bo/i/98/48/port242.asp)
        * [Regulamento Administrativo n.º 4/1999](https://bo.io.gov.mo/bo/i/1999/01/regadm04.asp)
        * [Regulamento Administrativo n.º 5/1999](https://bo.io.gov.mo/bo/i/1999/01/regadm05.asp)
        * [Ordem Executiva n.º 60/2000](https://bo.io.gov.mo/bo/i/2000/40/ordem60.asp)
        * [Lei n.º 27/2024](https://bo.io.gov.mo/bo/i/2025/01/lei27.asp#an2l63)

    Mandatory Holidays References:
        * [Decreto-Lei n.º 101/84/M](https://bo.io.gov.mo/bo/i/84/35/declei101.asp)
        * [Decreto-Lei n.º 24/89/M](https://bo.io.gov.mo/bo/i/89/14/declei24.asp)
        * [Lei n.º 8/2000](https://bo.io.gov.mo/bo/i/2000/19/lei08.asp)
        * [Lei n.º 7/2008](https://bo.io.gov.mo/bo/i/2008/33/lei07.asp)

    Cross-Checking:
        * [Public Holidays for 2017-2025](https://www.gov.mo/en/public-holidays/year-2017/)
        * [Public Holidays for 2005-2018](https://web.archive.org/web/20171207162948/http://portal.gov.mo/web/guest/info_detail?infoid=1887061)
        * [Mandatory Holidays for 2009-2029](https://www.dsal.gov.mo/pt/standard/holiday_table.html)
    MOzh_MOi  )IMr   r   )zConcelho das Ilhasu	   海島市u	   海岛市zConcelho de Macauu	   澳門市u	   澳门市)en_MOen_USpt_MOthzh_CNr   c                 &   t        j                  |        t        j                  |        t        j                  |        t	        j                  | t
               |j                  dt               |j                  dd       t        |   |i | y )Nobserved_ruleobserved_since  )	r   __init__r   r   r   MacauStaticHolidays
setdefaultr   super)selfargskwargs	__class__s      X/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/holidays/countries/macau.pyr!   zMacau.__init__S   sr    ((.""4(&&t,&9:/+BC*D1$)&)    c                 |   | j                  t        d             | j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  dk\  rt        d      n
t        d      }| j                  |       | j                  dk\  rt        d	      n
t        d
      }| j                  |       | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             t        d      }| j                  dk\  r| j!                  |       n2| j                  dk(  r| j#                  |       n| j%                  |       | j                  dk\  rt        d      }n&| j                  dk(  rt        d      }nt        d      }| j'                  |       | j                  dk\  rt        d      n
t        d      }| j)                  |       | j                  dk  r4| j+                  t        d             | j-                  t        d             | j                  dk  r| j/                  t        d             | j                  dk  ri| j1                  t        d             | j3                  t        d              | j5                  t        d!             | j7                  t        d"             y | j9                  t        d#             | j;                  t        d$             | j=                  t        d%             y )&N   元旦   農曆正月初一   農曆正月初二   農曆正月初三	   清明節  u   耶穌受難日u   聖周星期五   復活節前日u   聖周星期六	   勞動節	   端午節	   重陽節   中秋節翌日   中華人民共和國國慶日	   追思節   聖母無原罪瞻禮   冬至i     聖誕節前日  u   聖誕節前夕u   聖誕前夕	   聖誕節u   聖誕i  u   聖母升天u	   諸聖節i  u   基督聖體聖血節u	   自由日$   葡國日、賈梅士日暨葡僑日u   葡萄牙共和國國慶日u   恢復獨立紀念日	   佛誕節$   中華人民共和國國慶日翌日$   澳門特別行政區成立紀念日)_add_new_years_daytr_add_chinese_new_years_day_add_chinese_new_years_day_two _add_chinese_new_years_day_three_add_qingming_festival_year_add_good_friday_add_holy_saturday_add_labor_day_add_dragon_boat_festival_add_double_ninth_festival _add_mid_autumn_festival_day_two_add_holiday_oct_1_add_all_souls_day_add_immaculate_conception_day_add_dongzhi_festival_add_holiday_dec_21_add_holiday_dec_22_add_christmas_eve_add_christmas_day_add_assumption_of_mary_day_add_all_saints_day_add_corpus_christi_day_add_holiday_apr_25_add_holiday_jun_10_add_holiday_oct_5_add_holiday_dec_1_add_chinese_birthday_of_buddha_add_holiday_oct_2_add_holiday_dec_20r%   names     r)   _populate_public_holidayszMacau._populate_public_holidays]   s3   8- 	''+?(@A 	++B/C,DE 	--b1E.FG 	##B{O4 zzT!  ! %& 	 	d# zzT!  ! %& 	 	% 	B{O, 	&&r+7 	'';8 	--b1B.CD 	#C DE 	;0 	++B/F,GH (|::&&t,ZZ4$$T*$$T* ::'(DZZ4'(D n%D% zzT! {O H 	 	% ::,,R-?@ $$R_5 ::((,C)DE ::$$R_5 $$R(N%OP ##B'D$EF ##B'>$?@ 00KA ##B'M$NO $$R(N%OPr*   c                    | j                   dk  ry| j                  t        d             | j                  t        d             | j	                  t        d             | j                  t        d             | j                  t        d             | j                  t        d             | j                  t        d	             | j                   d
k\  r| j                  t        d             | j                   dk  r5| j                  t        d             | j                  t        d             y| j                  t        d             | j                  t        d             y)u  
        Decreto-Lei n.º 101/84/M - Earliest Available Version Online.
        Decreto-Lei n.º 24/89/M - Added Ching Ming Festival.
        Lei n.º 8/2000 - Removed Day of Portugal
                       - Added Macao S.A.R. Establishment Day.
                       - Moved Mid-Autumn to Day following Mid-Autumn to match Public Holidays.
        Lei n.º 7/2008 - Consolidated with other laws, reaffirming 2000 Amendment list.
        i  Nr,   r-   r.   r/   r3   r5   r7   i  r0   r<   r>   u	   中秋節r6   rA   )rH   rB   rC   rD   rE   rF   rK   rM   rO   rG   r[   _add_mid_autumn_festivalrN   r`   r%   s    r)   _populate_mandatory_holidaysz"Macau._populate_mandatory_holidays   s)    :: 	8- 	''+?(@A 	++B/C,DE 	--b1E.FG 	B{O, 	'';8 	#C DE ::'';8
 ::$$R(N%OP ))"[/: 11"5F2GH $$R(N%OPr*   c                    | j                   dk  ry t               }| j                  d      }|j                  | j	                  t        d                   | j                   dvr#| j                  || j                  d      z         | j                   dv r| j                  t        d             | j                   dv r| j                  t        d	             | j                   d
k\  r{|j                  | j                  t        d                   |j                  | j                  t        d                   |j                  | j                  t        d                   |j                  | j                  t        d                   |j                  | j                  t        d                   |j                  | j                  t        d                   |j                  | j                  t        d                   |j                  | j                  t        d                   |j                  | j!                  t        d                   |j                  | j#                  t        d                   |j                  | j%                  t        d                   |j                  | j'                  t        d                   |j                  | j)                  t        d                   |j                  | j+                  t        d                   |j                  | j-                  t        d                   |j                  | j/                  t        d                   |j                  | j1                  t        d                   |j                  | j3                  t        d                   | j                   dk\  r1| j                   dvr#| j5                  || j                  d      z         | j6                  rj| j                   d k\  r| j                  d!      n| j                  d"      | _        | j                   d#k  rt:        nt<        | _        | jA                  |d$%       y y )&Ni  u   %s（下午）r,   >                   u   農曆除夕>   rj   rk   rl   rn         u   農曆正月初四>   rq     rr   rs   u   農曆正月初五i  r-   r.   r/   r2   r0   r3   r?   r4   r6   r5   r7   r@   r8   r9   rA   r:   r;   r=   rk   >     r    rm   ro   rr   rp      除夕  u   %s的補假u   %s後首個工作日r    T)multiple)!rH   setrC   addrB   _add_chinese_new_years_eve_add_chinese_new_years_day_four_add_chinese_new_years_day_fiverD   rE   rF   rJ   rG   rK   r^   rL   rN   rM   rO   r_   rP   rQ   r`   rR   rU   rV   _add_new_years_eveobservedobserved_labelr   r   _observed_rule_populate_observed)r%   dts_observedbegin_time_labels      r)   _populate_government_holidaysz#Macau._populate_government_holidays  s    ::u  77#34 	00H>?::MM++,<tww~?V,VW::CC004H1IJ::11004H1IJ::T<<R@T=UVW T@@DXAYZ[ TBB2FZC[\] 	004E1FGH 	44R_EF 	,,R_=> 	==boNO 	77;HI 	>>rBS?TUV 	88KIJ 	004T1UVW 	004Z1[\] 	00KAB 	<<R@W=XYZ 	11"5[2\]^ 	33BxLAB 	004E1FGH 	00KAB ::$**4X"X##$4twwx7H$HI== ::% & WW34  (,zzT'9#?V  ##L4#@ r*   c                     | j                   dk  r>t        d      }| j                   dk  r| j                  |       y | j                  |       y y )Nr<   u   海島市日i  )rH   rC   _add_holiday_nov_30_add_holiday_jul_13ra   s     r)   "_populate_subdiv_i_public_holidaysz(Macau._populate_subdiv_i_public_holidays}  sG     ::n%DzzT!((.((. r*   c                 X    | j                   dk  r| j                  t        d             y y )Nr<   u   澳門市日)rH   _add_holiday_jun_24rC   rf   s    r)   "_populate_subdiv_m_public_holidaysz(Macau._populate_subdiv_m_public_holidays  s&    ::$$R%78 r*   )__name__
__module____qualname____doc__countrydefault_language
start_yearsubdivisionssubdivisions_aliasesr   r	   r
   supported_categoriessupported_languagesr!   rc   rg   r   r   r   __classcell__)r(   s   @r)   r   r      sx    4 GJL "  '	6:M*CQJ5QnbAH	/9r*   r   c                       e Zd Zy)r   Nr   r   r    r*   r)   r   r         r*   r   c                       e Zd Zy)MACNr   r   r*   r)   r   r     r   r*   r   c                   ,   e Zd 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	 ed
      fede
fedeffede	fedefdZdedefiZedefedeffedefed ed      fed ed      fedeffedefedefdZy)r"   a  Macau special holidays.

    Special Public and Government Holidays:
        * <https://www.io.gov.mo/pt/legis/rec/111020>

    Special Mandatory Holidays:
        * <https://www.dsal.gov.mo/pt/standard/holiday_table.html>

    Cross-Checking:
        * [Public Holidays for 2017-2025](https://www.gov.mo/en/public-holidays/year-2017/)
        * [Public Holidays for 2005-2018](https://web.archive.org/web/20171207162948/http://portal.gov.mo/web/guest/info_detail?infoid=1887061)
    u   額外公眾假期u   額外公眾半日假uN   中國人民抗日戰爭暨世界反法西斯戰爭勝利七十周年紀念日u<   中華人民共和國國慶日翌日及中秋節翌日重疊u6   中華人民共和國國慶日翌日及重陽節重疊u6   中華人民共和國國慶日及中秋節翌日重疊rv      u   額外政府假期         )i  rm   rq   rw   rt            uH   澳門回歸祖國暨中華人民共和國澳門特別行政區成立日   uN   澳門回歸祖國暨中華人民共和國澳門特別行政區成立日翌日   )i  r<   r1   rt   N)r   r   r   r   rC   name_fulldayname_halfdayname_70th_war_of_resistance5name_mid_autumn_festival_day_2_national_day_2_overlap1name_double_ninth_festival_national_day_2_overlap3name_mid_autumn_festival_day_2_national_day_overlapname_new_years_ever   r   special_government_holidaysr   special_mandatory_holidaysr   special_public_holidaysr   r*   r)   r"   r"     sF    *+L -.L #%%u"v =?F=9 9;;s8t5 ;=@;7
 H B/01!HI"()
 AHIALM	# 	sA23"
 "l#"l#

 "l# "bcde "bijk"l#	
 A|$A23!r*   r"   N)r   rC   holidays.calendars.gregorianr   r   r   r   holidays.constantsr   r	   r
   holidays.groupsr   r   r   r   holidays.observed_holiday_baser   r   r   r   r   r   r"   r   r*   r)   <module>r      sj    " ; ; < <  n9n9b	 		% 	I Ir*   