
    x7#h\                     <    d dl mZ d dlmZ d dlmZ  G d d      Zy)    )date)Optional)
_timedeltac            	       \    e Zd ZdZdZdZdedefdZdede	e
   fdZdeded	ede	e
   fd
Zy)_Persianzu
    Persian calendar (Solar Hijri) for 1901-2100 years.

    https://en.wikipedia.org/wiki/Solar_Hijri_calendar
    im  i4  yearreturnc                     |dz  dv S )zZ
        Is Persian year that begins in the specified Gregorian year a leap year.
        !   >                             )selfr   s     Z/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/holidays/calendars/persian.pyis_leap_yearz_Persian.is_leap_year   s     r	<<<    c                 &   |t         j                  k  s|t         j                  kD  ryd}|dz  dk(  r|dk\  s0|dz  dk(  r|dk\  s#|dz  dk(  r|d	k\  s|dz  d
k(  rd|cxk  rdk  rn nd}n|dz  dk(  r|dk  s|dz  dk(  r|dk  rd}t        |d|      S )zd
        Return Gregorian date of Persian new year (1 Farvardin) in a given Gregorian year.
        N         i     i  r   i/  r   i  i0  r   i  i     )r   
START_YEAREND_YEARr   )r   r   days      r   new_year_datez_Persian.new_year_date#   s     (%%%0A0A)AAX]tt|qA$$,qA$$,qA$$"6$"6CQh!m$(a-DDLCD!S!!r   j_monthj_dayc                     | j                  |      }|sy|dz
  }|dk  rd|z  n
dd|dz
  z  z   |z   dz
  }t        ||      S )z[
        Return Gregorian date of Persian day and month in a given Gregorian year.
        Nr               )r"   r   )r   r   r#   r$   
start_datemdeltas          r   persian_to_gregorianz_Persian.persian_to_gregorian6   sX     ''-
aKq5acB!a%L&8EAAE*e,,r   N)__name__
__module____qualname____doc__r   r    intboolr   r   r   r"   r-   r   r   r   r   r      sc     JH= = ="# "(4. "&
- 
-s 
-3 
-8TX> 
-r   r   N)datetimer   typingr   holidays.calendars.gregorianr   r   r   r   r   <module>r7      s      3-- --r   