IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Date de la veille qui marche, puis qui ne marche plus


Sujet :

Scripts/Batch

  1. #1
    Rédacteur/Modérateur
    Avatar de NorocBzh
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2008
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 834
    Points : 1 265
    Points
    1 265
    Par défaut Date de la veille qui marche, puis qui ne marche plus
    Bonjour,

    J'avais fait un petit bout de code pour déterminer la date de la veille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    @Echo off & Setlocal enableextensions enabledelayedexpansion
    set annee=%date:~6,4%
    set mois=%date:~3,2%
    set jour=%date:~0,2%
    
    set /a mois_precedent=%mois%
    set /a mois_precedent-=1
    set /a jour_precedent=%jour%
    set /a jour_precedent-=1
    if %mois_precedent%==01 ( set nb_jour_mois_precedent=31 )
    if %mois_precedent%==02 ( set nb_jour_mois_precedent=28 )
    if %mois_precedent%==04 ( set nb_jour_mois_precedent=30 )
    if %mois_precedent%==03 ( set nb_jour_mois_precedent=31 )
    if %mois_precedent%==05 ( set nb_jour_mois_precedent=31 )
    if %mois_precedent%==06 ( set nb_jour_mois_precedent=30 )
    if %mois_precedent%==07 ( set nb_jour_mois_precedent=31 )
    if %mois_precedent%==08 ( set nb_jour_mois_precedent=31 )
    if %mois_precedent%==09 ( set nb_jour_mois_precedent=30 )
    if %mois_precedent%==10 ( set nb_jour_mois_precedent=30 )
    if %mois_precedent%==11 ( set nb_jour_mois_precedent=30 )
    if %mois_precedent%==12 ( set nb_jour_mois_precedent=31 ) 
    
    if %jour%==1 ( set jour_prededent=%nb_jour_mois_precedent% )
    if %jour_precedent% LSS 10 ( set jour_precedent=0!jour_precedent!)
    
    echo hier : %jour_precedent% %mois% %annee%
    Et il marchait très bien ! Mais depuis hier, le code ne marche plus et me renvoit comme erreur :
    Nombre non valide. Les constantes numériques d
    soit hexadécimales (0x11), soit octales (021).
    Quelqu'un a une idée ?

  2. #2
    Rédacteur/Modérateur
    Avatar de NorocBzh
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2008
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 834
    Points : 1 265
    Points
    1 265
    Par défaut
    Ce qui est étonnant, c'est que ça marche pour tous les jours, sauf pour le 8 et le 9 de chaque mois

  3. #3
    Rédacteur/Modérateur
    Avatar de NorocBzh
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2008
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 834
    Points : 1 265
    Points
    1 265
    Par défaut
    La solution pour ceux que ça intéresse :

    Si la date est égale à 08 ou 09, il peut y avoir un problème dans l'interprétation : le 8 et le 9 ne sont pas valides en octale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    @Echo off & Setlocal enableextensions enabledelayedexpansion
    set annee=%date:~6,4%
    set mois=%date:~3,2%
    set jour=%date:~0,2%
    
    if %jour% LSS 10 ( set /a jour_precedent = %jour:~1,2% - 1)
    
    set /a mois_precedent=%mois%
    set /a mois_precedent-=1
    if %mois_precedent%==01 ( set nb_jour_mois_precedent=31 )
    if %mois_precedent%==02 ( set nb_jour_mois_precedent=28 )
    if %mois_precedent%==04 ( set nb_jour_mois_precedent=30 )
    if %mois_precedent%==03 ( set nb_jour_mois_precedent=31 )
    if %mois_precedent%==05 ( set nb_jour_mois_precedent=31 )
    if %mois_precedent%==06 ( set nb_jour_mois_precedent=30 )
    if %mois_precedent%==07 ( set nb_jour_mois_precedent=31 )
    if %mois_precedent%==08 ( set nb_jour_mois_precedent=31 )
    if %mois_precedent%==09 ( set nb_jour_mois_precedent=30 )
    if %mois_precedent%==10 ( set nb_jour_mois_precedent=30 )
    if %mois_precedent%==11 ( set nb_jour_mois_precedent=30 )
    if %mois_precedent%==12 ( set nb_jour_mois_precedent=31 ) 
    
    if %jour%==1 ( set jour_prededent=%nb_jour_mois_precedent% )
    if %jour_precedent% LSS 10 ( set jour_precedent=0!jour_precedent!)
    
    echo hier : %jour_precedent% %mois% %annee%

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Programme qui fonctionne puis qui ne fonctionne plus ..
    Par doudou2152 dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 13/05/2010, 12h14
  2. Programme qui marche puis qui ne marche plus ..
    Par doudou2152 dans le forum C
    Réponses: 11
    Dernier message: 11/05/2010, 16h15
  3. requete qui marche, puis qui marche plus, puis qui marche ..
    Par exyacc dans le forum Bases de données
    Réponses: 2
    Dernier message: 05/04/2006, 19h32
  4. Réponses: 7
    Dernier message: 05/11/2005, 15h53
  5. Projet qui marche sous Eclipse ne marche plus en JAR
    Par leminipouce dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 26/10/2005, 18h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo