Ajouter une durée à une date

@echo off
 set heuresupp=2
 set /a an_Now=%date:~6,4%
 set /a mois_Now=%date:~3,2%
 set /a Jour_Now=%date:~0,2%
 set /a hh_Now=%time:~0,2%
 set /a mn=%time:~3,2%
 
 set jour=%jour_Now%
 set an=%an_Now%
 set mois=%mois_Now%
 set moistmp=%mois_Now%
 
 :Calcul
 set /a heuretmp=%hh_Now%+%heuresupp%
 if %heuretmp% GEQ 24 (set /a heure=%heuretmp%-24) else (set /a heure=%heuretmp%)
 if %heuretmp% GEQ 24 (set /a jour=%jour_Now%+1) else (set /a jour=%jour_Now%)
 
 :calculmois
 if %mois_Now% EQU 1 set /a jourJ=%jour%-31
 if %mois_Now% EQU 2 goto bissextile
 if %mois_Now% EQU 3 set /a jourJ=%jour%-31
 if %mois_Now% EQU 4 set /a jourJ=%jour%-30
 if %mois_Now% EQU 5 set /a jourJ=%jour%-31
 if %mois_Now% EQU 6 set /a jourJ=%jour%-30
 if %mois_Now% EQU 7 set /a jourJ=%jour%-31
 if %mois_Now% EQU 8 set /a jourJ=%jour%-31
 if %mois_Now% EQU 9 set /a jourJ=%jour%-30
 if %mois_Now% EQU 10 set /a jourJ=%jour%-31
 if %mois_Now% EQU 11 set /a jourJ=%jour%-30
 if %mois_Now% EQU 12 set /a jourJ=%jour%-31
 goto CalculFinal
 
 :bissextile
 set /A tt=%an_Now% %% 4
 if not %tt%==0 goto SET28
 set /A tt=%an_Now% %% 100
 if not %tt%==0 goto SET29
 set /A tt=%an_Now% %% 400
 if %tt%==0 goto SET29
 :SET28
 if %mois_Now% EQU 2 set /a jourJ=%jour%-28
 goto CalculFinal
 
 :SET29
 if %mois_Now% EQU 2 set /a jourJ=%jour%-29
 
 :CalculFinal
 if %jourJ% GTR 0 set /a moistmp=%mois_Now%+1
 if %jourJ% GTR 0 set /a mois=%mois_Now%+1
 if %jourJ% LEQ 0 set jourJ=%jour%
 
 if %moistmp% GTR 12 set /a mois=%mois_Now%+1-12
 if %moistmp% GTR 12 set /a an=%an_Now%+1
 echo Base : %Jour_Now%/%mois_Now%/%an_Now% %hh_Now%:%mn%
 echo JourJ+2 : %jourJ%/%mois%/%an% %heure%:%mn%
 pause

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *