
    Mhf	                    n    d dl mZ d dlmZ d dlmZmZ d dlmZ d dlm	Z	m
Z
mZmZmZ erd dlmZ ddZdS )    )annotations)datetime)ROUND_HALF_UPDecimal)TYPE_CHECKING)max_day_in_monthmod2mod3quot2quot3)Durationstartr   durationr   returnc                   t          | j                  |j        j        z   }t	          |t          d          t          d                    }t          |t          d          t          d                    }t          | j                  |j        j        z   |z   }| j        }t          | j	                  |j
        j        z   }t          |t          d                    }t          |t          d                    }t          | j                  |j
        j        z   |z   }t          |t          d                    }t          |t          d                    }t          | j                  |j
        j        z   |z   }t          |t          d                    }	t          |t          d                    }t%          ||          }
| j        |
k    r|
}nt          | j                  }||j        j        z   d|j        j        z  z   |z   }	 |dk     r&|t%          ||dz
            z  }t          d          }n8|t%          ||          k    r#|t%          ||          z  }t          d          }nn_||z   }t	          |t          d          t          d                    }|t          |t          d          t          d                    z   }t-          t/          |                    t2                              t/          |                    t2                              t/          |                    t2                              t/          |	                    t2                              t/          |                    t2                              t/          |                    t2                              |          S )	zJ
    https://www.w3.org/TR/xmlschema-2/#adding-durations-to-dateTimes
          6024   T)yearmonthdayhourminutesecondtzinfo)r   r   datemonthsr
   r   r   yearsr   r   timesecondsr	   r   r   minutesr   hoursr   r   daysweeksr   intto_integral_valuer   )r   r   temp	end_monthcarryend_year
end_tzinfo
end_second
end_minuteend_hourend_max_day_in_monthend_days               _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/isoduration/operations/__init__.pyaddr5      s#    5;(-"66DT71::wr{{33I$

GBKK00E uz""X]%885@H J 5<  8=#88DdGDMM**J$&&E 5<  8=#885@DdGDMM**J$&&E 5:!44u<DD'$--((H$&&E ,Hi@@y'''#uy!!X]''1x}/B+BCeKGCQ;;')a-@@@GBKKEE')<<<<')<<<GAJJEE5 wqzz72;;77	eD'!**gbkkBBBC ++M::;;)--m<<==))-8899++M::;;://>>??://>>??       N)r   r   r   r   r   r   )
__future__r   r   decimalr   r   typingr   isoduration.operations.utilr   r	   r
   r   r   isoduration.typesr   r5    r6   r4   <module>r=      s    " " " " " "       * * * * * * * *             R R R R R R R R R R R R R R +******? ? ? ? ? ?r6   