Batch pour afficher date + 1 jour
Résolu/Fermé
sam0ray
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010
-
Modifié par sam0ray le 8/07/2010 à 11:45
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 - 19 juil. 2010 à 20:38
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 - 19 juil. 2010 à 20:38
A voir également:
- Ecrire un programme qui lit une date et affiche la date du jour d' après
- Comment savoir si quelqu'un lit mes messages sur whatsapp - Accueil - Messagerie instantanée
- Qu'est ce qu'une femme fait 3 fois par jour et un homme une fois dans sa vie - Forum Loisirs / Divertissements
- Comment ouvrir un fichier dat - Guide
5 réponses
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
8 juil. 2010 à 14:45
8 juil. 2010 à 14:45
salut
vous pouvez donner le code ? pour vous aider ;)
vous pouvez donner le code ? pour vous aider ;)
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
8 juil. 2010 à 16:56
8 juil. 2010 à 16:56
Re, up
comme ceci ? :
@Echo off
set annee=%date:~6,4%
set mois=%date:~3,2%
set jour=%date:~0,2%
comme ceci ? :
@Echo off
set annee=%date:~6,4%
set mois=%date:~3,2%
set jour=%date:~0,2%
sam0ray
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010
8 juil. 2010 à 16:59
8 juil. 2010 à 16:59
Plutôt l'algorithme je vous donne dessous le résultat que je veux :
@echo off
set aujourdhui=%date%
set demain=%date% + 1
echo demain on est : %demain%
pause
je savais que c'est pas logique de faire date + 1 mais juste pour vous expliquez mon besoin.
j'ai déjà penser à une idée un peu bidon, je ne sais pas comment mettre dans if l'opérateur logique "et" et "ou" aussi j'ai pas pu traité le cas de mois de février et le mois de décembre :
NB : le code ne marche pas
@echo off
rem si la date du système est de la forme jj/mm/aaaa
echo la date systeme est : %DATE%
echo.
rem récupération de jour, le mois et l'année
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
rem il faut mettre l'operateur logique "et" pour que les deux conditions soit respecter à la foi
if %jr% == 31 %ms% == 01 set demain=01 02 %ane%
if %jr% == 31 %ms% == 03 set demain=01 04 %ane%
if %jr% == 30 %ms% == 04 set demain=01 05 %ane%
if %jr% == 31 %ms% == 05 set demain=01 06 %ane%
if %jr% == 30 %ms% == 06 set demain=01 07 %ane%
if %jr% == 31 %ms% == 07 set demain=01 08 %ane%
if %jr% == 31 %ms% == 08 set demain=01 09 %ane%
if %jr% == 30 %ms% == 09 set demain=01 10 %ane%
if %jr% == 31 %ms% == 10 set demain=01 11 %ane%
if %jr% == 30 %ms% == 11 set demain=01 12 %ane%
rem dans le cas contraire si le jour est normal
else
set demain = %jr%+1 %ms% %ane%
rem afficher le résultat
echo demain nous somme le : %demain%
pause
rem fin
merci de votre aide
@echo off
set aujourdhui=%date%
set demain=%date% + 1
echo demain on est : %demain%
pause
je savais que c'est pas logique de faire date + 1 mais juste pour vous expliquez mon besoin.
j'ai déjà penser à une idée un peu bidon, je ne sais pas comment mettre dans if l'opérateur logique "et" et "ou" aussi j'ai pas pu traité le cas de mois de février et le mois de décembre :
NB : le code ne marche pas
@echo off
rem si la date du système est de la forme jj/mm/aaaa
echo la date systeme est : %DATE%
echo.
rem récupération de jour, le mois et l'année
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
rem il faut mettre l'operateur logique "et" pour que les deux conditions soit respecter à la foi
if %jr% == 31 %ms% == 01 set demain=01 02 %ane%
if %jr% == 31 %ms% == 03 set demain=01 04 %ane%
if %jr% == 30 %ms% == 04 set demain=01 05 %ane%
if %jr% == 31 %ms% == 05 set demain=01 06 %ane%
if %jr% == 30 %ms% == 06 set demain=01 07 %ane%
if %jr% == 31 %ms% == 07 set demain=01 08 %ane%
if %jr% == 31 %ms% == 08 set demain=01 09 %ane%
if %jr% == 30 %ms% == 09 set demain=01 10 %ane%
if %jr% == 31 %ms% == 10 set demain=01 11 %ane%
if %jr% == 30 %ms% == 11 set demain=01 12 %ane%
rem dans le cas contraire si le jour est normal
else
set demain = %jr%+1 %ms% %ane%
rem afficher le résultat
echo demain nous somme le : %demain%
pause
rem fin
merci de votre aide
sam0ray
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010
8 juil. 2010 à 17:23
8 juil. 2010 à 17:23
je vous donne les cas possible :
Cas normal :
date = 08/07/2010 => date + 1 =09/07/2010
Cas de fin de mois
date = 31/07/2010 => date + 1 =01/08/2010
date = 30/06/2010 => date + 1 =01/07/2010
date = 28/02/2010 => date + 1 =01/03/2010
Cas de mois de décembre
date = 31/12/2010 => date + 1 =01/01/2011
Cas de l'année bissextile
date = 29/02/2010 => date + 1 =01/03/2010
Cas normal :
date = 08/07/2010 => date + 1 =09/07/2010
Cas de fin de mois
date = 31/07/2010 => date + 1 =01/08/2010
date = 30/06/2010 => date + 1 =01/07/2010
date = 28/02/2010 => date + 1 =01/03/2010
Cas de mois de décembre
date = 31/12/2010 => date + 1 =01/01/2011
Cas de l'année bissextile
date = 29/02/2010 => date + 1 =01/03/2010
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
8 juil. 2010 à 17:33
8 juil. 2010 à 17:33
Re,
pour le 1er code il n ya pas d'espace entre le %jr% et l'égalité == et pour l'ajout de et/ou logique il faut ajouter une autre IF , c tout , voici la marche à suivre :
echo.
rem récupération de jour, le mois et l'année
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set demain=
rem il faut mettre l'operateur logique "et" pour que les deux conditions soit respecter à la foi
if %jr%==31 if %ms%==01 set demain=01 02 %ane%
if %jr%==31 if %ms%==03 set demain=01 04 %ane%
if %jr%==30 if %ms%==04 set demain=01 05 %ane%
if %jr%==31 if %ms%==05 set demain=01 06 %ane%
if %jr%==30 if %ms%==06 set demain=01 07 %ane%
if %jr%==31 if %ms%==07 set demain=01 08 %ane%
if %jr%==31 if %ms%==08 set demain=01 09 %ane%
if %jr%==30 if %ms%==09 set demain=01 10 %ane%
if %jr%==31 if %ms%==10 set demain=01 11 %ane%
if %jr%==30 if %ms%==11 set demain=01 12 %ane%
echo demain est le : !demain!
pause
pour le 1er code il n ya pas d'espace entre le %jr% et l'égalité == et pour l'ajout de et/ou logique il faut ajouter une autre IF , c tout , voici la marche à suivre :
echo.
rem récupération de jour, le mois et l'année
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set demain=
rem il faut mettre l'operateur logique "et" pour que les deux conditions soit respecter à la foi
if %jr%==31 if %ms%==01 set demain=01 02 %ane%
if %jr%==31 if %ms%==03 set demain=01 04 %ane%
if %jr%==30 if %ms%==04 set demain=01 05 %ane%
if %jr%==31 if %ms%==05 set demain=01 06 %ane%
if %jr%==30 if %ms%==06 set demain=01 07 %ane%
if %jr%==31 if %ms%==07 set demain=01 08 %ane%
if %jr%==31 if %ms%==08 set demain=01 09 %ane%
if %jr%==30 if %ms%==09 set demain=01 10 %ane%
if %jr%==31 if %ms%==10 set demain=01 11 %ane%
if %jr%==30 if %ms%==11 set demain=01 12 %ane%
echo demain est le : !demain!
pause
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
8 juil. 2010 à 17:42
8 juil. 2010 à 17:42
ca marche ??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sam0ray
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010
8 juil. 2010 à 18:12
8 juil. 2010 à 18:12
oui ça marche, merci karirovax
Mais juste dans le cas normal comment faire le else ??? càd :
le cas ou le jour au 30 et 31, il faut mettre quelque part un else de fin des if
Mais juste dans le cas normal comment faire le else ??? càd :
le cas ou le jour au 30 et 31, il faut mettre quelque part un else de fin des if
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
8 juil. 2010 à 18:15
8 juil. 2010 à 18:15
Re,
pour le cas d'un else :
un exemple :
if %jr%==31 (if %ms%==01 set demain=01 02 %ane%
) else (
echo votre commande ici )
pour le cas d'un else :
un exemple :
if %jr%==31 (if %ms%==01 set demain=01 02 %ane%
) else (
echo votre commande ici )
sam0ray
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010
Modifié par sam0ray le 8/07/2010 à 19:05
Modifié par sam0ray le 8/07/2010 à 19:05
Je n'arrive pas à le faire peux tu me donner le code avec else ? merci d'avance
dessous ce que j'ai fait mais il m'arche pas :
@echo off
setlocal enableDelayedExpansion
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set demain=
if %jr%==31 (if %ms%==01 set demain=01 02 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==03 set demain=01 04 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==04 set demain=01 05 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==05 set demain=01 06 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==06 set demain=01 07 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==07 set demain=01 08 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==08 set demain=01 09 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==09 set demain=01 10 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==10 set demain=01 11 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==11 set demain=01 12 %ane%
)else (
goto Dateplus)
:Datenormal
echo dans le cas normal demain on est: !demain!
:Dateplus
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set demain=%jr%+1 %ms% %ane%
echo demain dans le cas normal est: %demain%
pause
merci d'avance
dessous ce que j'ai fait mais il m'arche pas :
@echo off
setlocal enableDelayedExpansion
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set demain=
if %jr%==31 (if %ms%==01 set demain=01 02 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==03 set demain=01 04 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==04 set demain=01 05 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==05 set demain=01 06 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==06 set demain=01 07 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==07 set demain=01 08 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==08 set demain=01 09 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==09 set demain=01 10 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==10 set demain=01 11 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==11 set demain=01 12 %ane%
)else (
goto Dateplus)
:Datenormal
echo dans le cas normal demain on est: !demain!
:Dateplus
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set demain=%jr%+1 %ms% %ane%
echo demain dans le cas normal est: %demain%
pause
merci d'avance
karirovax
Messages postés
3221
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
203
8 juil. 2010 à 19:16
8 juil. 2010 à 19:16
Re,
essayez ceci ( ca marche je pense )
@echo off
setlocal enableDelayedExpansion
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set demain=
if %jr%==31 (if %ms%==01 set demain=01 02 %ane%
) else (
echo votre commande ici )
if %jr%==31 (if %ms%==01 set demain=01 02 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==03 set demain=01 04 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==04 set demain=01 05 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==05 set demain=01 06 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==06 set demain=01 07 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==07 set demain=01 08 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==08 set demain=01 09 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==09 set demain=01 10 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==10 set demain=01 11 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==11 set demain=01 12 %ane%
)else (
goto Dateplus)
:Datenormal
echo dans le cas normal demain on est: !demain!
:Dateplus
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set /a jr=%jr:~1%+1
set demain=%jr% %ms% %ane%
echo demain dans le cas normal est: %demain%
pause
essayez ceci ( ca marche je pense )
@echo off
setlocal enableDelayedExpansion
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set demain=
if %jr%==31 (if %ms%==01 set demain=01 02 %ane%
) else (
echo votre commande ici )
if %jr%==31 (if %ms%==01 set demain=01 02 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==03 set demain=01 04 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==04 set demain=01 05 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==05 set demain=01 06 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==06 set demain=01 07 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==07 set demain=01 08 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==08 set demain=01 09 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==09 set demain=01 10 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==10 set demain=01 11 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==11 set demain=01 12 %ane%
)else (
goto Dateplus)
:Datenormal
echo dans le cas normal demain on est: !demain!
:Dateplus
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set /a jr=%jr:~1%+1
set demain=%jr% %ms% %ane%
echo demain dans le cas normal est: %demain%
pause
sam0ray
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010
8 juil. 2010 à 19:36
8 juil. 2010 à 19:36
merci pour votre aide le code marche mais l'appel de la fonction est inversé dessous le code modifier :
@echo off
setlocal enableDelayedExpansion
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set demain=
if %jr%==31 (if %ms%==01 set demain=01 02 %ane%
goto Dateplus)else (
goto Datenormal)
if %jr%==31 (if %ms%==03 set demain=01 04 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==04 set demain=01 05 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==05 set demain=01 06 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==06 set demain=01 07 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==07 set demain=01 08 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==08 set demain=01 09 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==09 set demain=01 10 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==10 set demain=01 11 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==11 set demain=01 12 %ane%
)else (
goto Dateplus)
:Dateplus
echo dans le fin de mois, demain on est:
goto suite
:Datenormal
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set /a jr=%jr%+1
set demain=%jr% %ms% %ane%
echo demain dans le cas normal est:
goto suite
:suite
echo !demain!
pause
@echo off
setlocal enableDelayedExpansion
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set demain=
if %jr%==31 (if %ms%==01 set demain=01 02 %ane%
goto Dateplus)else (
goto Datenormal)
if %jr%==31 (if %ms%==03 set demain=01 04 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==04 set demain=01 05 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==05 set demain=01 06 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==06 set demain=01 07 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==07 set demain=01 08 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==08 set demain=01 09 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==09 set demain=01 10 %ane%
)else (
goto Dateplus)
if %jr%==31 (if %ms%==10 set demain=01 11 %ane%
)else (
goto Dateplus)
if %jr%==30 (if %ms%==11 set demain=01 12 %ane%
)else (
goto Dateplus)
:Dateplus
echo dans le fin de mois, demain on est:
goto suite
:Datenormal
Set jr=%DATE:~0,2%
Set ms=%DATE:~3,2%
Set ane=%DATE:~6,4%
set /a jr=%jr%+1
set demain=%jr% %ms% %ane%
echo demain dans le cas normal est:
goto suite
:suite
echo !demain!
pause
sam0ray
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010
8 juil. 2010 à 19:44
8 juil. 2010 à 19:44
pour que le code soit complet, de préférable qu'on traite les cas d'exceptions:
-Dans le cas de mois de décembre il faut que l'année soit en plus
-et dans le cas mois de février : 28 et 29, dans ce cas il faut connaitre est ce que l'année est bissextile (2012 2016 2020 ...) ou pas
merci encore de votre aide
-Dans le cas de mois de décembre il faut que l'année soit en plus
-et dans le cas mois de février : 28 et 29, dans ce cas il faut connaitre est ce que l'année est bissextile (2012 2016 2020 ...) ou pas
merci encore de votre aide