1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
| @echo off
rem Petit script permettant de récuperer la date du jour - x jour (parametre en entrée) en tenant compte des années bissextiles
rem 60 jours par défaut
rem Indispensable pour les l'expention retardée
setlocal enableextensions enabledelayedexpansion
set jjcalc=%date:~0,2%
set mmcalc=%date:~3,2%
rem --------------------------------------------------------------------------------------
rem Petite manip pour se débarrasser du 0 devant les mois et jours inferieurs à 10
rem sinon le dos croit que c'est de l'octal
rem --------------------------------------------------------------------------------------
if "!jjcalc:~0,1!"=="0" ( set /a jcalc=!jjcalc:~1,1!) ELSE ( set /a jcalc=%jjcalc%)
if "!mmcalc:~0,1!"=="0" ( set /a mcalc=!mmcalc:~1,1!) ELSE ( set /a mcalc=%mmcalc%)
set /a acalc=%date:~6,4%
if "%1"=="" (
set /a Nb=60
) else (
set /a Nb=%1
)
set bissex="NON"
set /a calc=!acalc!%%400
IF !calc! EQU 0 (
set bissex="OUI"
) else (
set /a calc=!acalc!%%4
IF !calc! EQU 0 (
set /a calc=!acalc!%%100
IF !calc! NEQ 0 (
set bissex="OUI"
)
)
)
echo Date de depart: %date% "!jcalc!" "!mcalc!" "!acalc!"
for /l %%i in (1, 1, %Nb%) do (
set Jour=!jcalc!
set Mois=!mcalc!
rem -----------------------------------------------------------------------------------
rem Manip pour rajouter les 0 devant les mois et jours inférieurs à 10
rem --------------------------------------------------------------------------------------
if "!jcalc:~1,2!"=="" (set Jour=0!jcalc:~0,1!)
if "!mcalc:~1,2!"=="" (set Mois=0!mcalc:~0,1!)
set DateRecherche=!acalc!!Mois!!Jour!
rem c'est dans cette variable que se trouve la date
echo !DateRecherche!
set /a jcalc=!jcalc!-1
if "!jcalc!"=="0" (
set /a mcalc=!mcalc!-1
if "!mcalc!"=="0" (
rem --------------------------------------------------------------------------------------
rem On change d'annee, donc on vérifie que celle-ci n'est pas bissextile
rem --------------------------------------------------------------------------------------
set /a mcalc=12
set /a acalc=!acalc!-1
set bissex="NON"
set /a calc=!acalc!%%400
IF !calc! EQU 0 (
set bissex="OUI"
) else (
set /a calc=!acalc!%%4
IF !calc! EQU 0 (
set /a calc=!acalc!%%100
IF !calc! NEQ 0 (
set bissex="OUI"
)
)
)
)
rem --------------------------------------------------------------------------------------
rem On change de mois, donc on attribue le nombre de jours en ftn du nouveau
rem mois et de l'année bissextile ou non
rem --------------------------------------------------------------------------------------
if "!mcalc!"=="1" (
set /a jcalc=30
) else if "!mcalc!"=="2" (
if !bissex!=="OUI" (
set /a jcalc=29
)else (
set /a jcalc=28
)
)else if "!mcalc!"=="3" (
set /a jcalc=31
)else if "!mcalc!"=="4" (
set /a jcalc=30
)else if "!mcalc!"=="5" (
set /a jcalc=31
)else if "!mcalc!"=="6" (
set /a jcalc=30
)else if "!mcalc!"=="7" (
set /a jcalc=31
)else if "!mcalc!"=="8" (
set /a jcalc=31
)else if "!mcalc!"=="9" (
set /a jcalc=30
)else if "!mcalc!"=="10" (
set /a jcalc=31
)else if "!mcalc!"=="11" (
set /a jcalc=30
)else if "!mcalc!"=="12" (
set /a jcalc=31
)
)
)
pause |
Partager