comment dans un script batch de récuperer la date (%date%)
sous forme d'un nombre
au lieu du format texte clair aaaajjmm..... ?
merci![]()
comment dans un script batch de récuperer la date (%date%)
sous forme d'un nombre
au lieu du format texte clair aaaajjmm..... ?
merci![]()
aaammjj étant une suite de chiffre c'est un nombre
Ce que tu veux c'est récupérer un entier significatif comme sous Excel par exemple ?
Ce n'est pas possible directement avec les fonctions DOS et la date est retournée au format correspondant aux paramètres internationnaux.
%date% renvoit en réalité la date en clair telle que
15/12/2007
il faudrait alors :
soit la reformater en 20071215
est-ce possible ?
soit faire une calcul du nombre de jours depuis 01/01/1900 tel que
15 + 12*30 + 1007*365
est-ce possible ?
merci
pas trouvé de solution dans la faq indiqué par Kokotis
>echo %date:/=%
renvoit 15122007
je cherche à en déduire le nombre de jours depuis une date donnée
exemple depuis le 01/01/1900
une solution ?
merci![]()
Pas en DOS
DOS est un OS, pas un langage
Il y a quelques commandes, mais rien qui permette de faire des calculs ou des conversions.
Tourne-toi vers un vbs, ça ira tout seul![]()
Bien sur que si
Comme ceci :
Ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part set madate=%date:~6,4%%date:~3,2%%date:~0,2%
Renvoie bien 20080104 (jusqu'à demain bien sur
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo %madate%)
Et surtout faire preuvre de courage
Certes on peut faire un calcul comme :
Mais en VBS on a des fonctions qui permettent de faire directement la différence entre deux dates et obtenir un entier, pas en DOS.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @echo off set j=15 set m=12 set a=1007 set /a z=%j% + %m%*30 + %a%*365 echo %z%
Et ici on impose les valeurs jours-mois-année alors qu'il faudrait les calculer...
Nous sommes d'accord
Après, tout dépend des contraintes de jover, si il peut utiliser du VBS ou non et ce qu'il compte faire avec ce nombre de jours en question. Le VBS me semble également être une solution simple et rapide à mettre en oeuvre.
Sinon en adaptant ton script on peut faire ceci pour partir de la date du jour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 @echo off set /a nbjours=%date:~0,2% + %date:~3,2%*30 + %date:~6,4%*365 echo %nbjours%
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @echo off set /a J="100%DATE:~0,2% %% 100" set /a M="100%DATE:~3,2% %% 100" set /a A=%DATE:~6,4% set /a N="((1461 * (%A% + 4800 + (%M% - 14) / 12)) / 4 + (367 * (%M% - 2 - 12 * ((%M% - 14) / 12))) / 12 - (3 * ((%A% + 4900 + (%M% - 14) / 12) / 100)) / 4 + %J% - 32075) - 2415021" echo. echo Nous sommes le %DATE% soit %N% jours depuis le 01/01/1900 echo.
Partager