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

Linux Discussion :

Calcul sur date


Sujet :

Linux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 92
    Points : 65
    Points
    65
    Par défaut Calcul sur date
    Bonjour,

    Je souhaite récupérer le mois en cours, soustraire 2 et récupérer le tout dans une variable.
    J'arrive quasiement à le faire sauf que après la soustraction je n'ai plus le préfixe "0" pour les mois de janvier à septembre.
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    moisEnCours=`date "+%m"`
    moisEnCoursMinusDeux=`expr ${moisEnCours} - 2`
    Pour "moisEnCours" en ce moment j'ai donc logiquement "04" mais après la soustraction alors que j'aimerais récupérer "02" j'obtiens "2".

    Savez vosu comment faire ?

    Merci d'avance.

    jeff

  2. #2
    Membre confirmé
    Avatar de bster
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Points : 497
    Points
    497
    Par défaut
    c'est normal puisque le zéro non significatif est éliminé dans toute opération mathématique. Hors c'est ce que tu fais..

    ajoutes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if [ `echo ${moisEnCoursMinusDeux} | wc -c` -eq 1 ];
    then
         moisEnCoursMinusDeux=`echo "0"${moisEnCoursMinusDeux}`
    fi
    avec un if ça evite les erreurs du style " 011 "

    penses aussi à tester la validitée du moins minusdeux
    si tu execute en janvier il faut tomber sur 11 et pas sur -1 et en plus il faut alors faire le changement d'année...et si tu fais des calculs sur les jours attention au changement de moi et aussi au cas particulier de février.....

    m'étant déjà fait avoir en n'y pensant pas .....

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 92
    Points : 65
    Points
    65
    Par défaut
    Merci pour ton aide.
    Entre temps je m'en étais sorti comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if [ ${moisEnCours} -ge 3  ] || [ ${moisEnCours} -le 11  ] ; then
    			{ 
    				alpha_moisEnCoursMinusDeux="0"`echo ${moisEnCoursMinusDeux}`
    			}
    		else
    			{ 
    				alpha_moisEnCoursMinusDeux=`echo ${moisEnCoursMinusDeux}`
    			}
    		fi

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

Discussions similaires

  1. [ WinDev ] Calcul sur date dans SQL
    Par Tchupacabra dans le forum Langage SQL
    Réponses: 8
    Dernier message: 28/02/2006, 12h12
  2. Calcul sur date dans SQL
    Par Tchupacabra dans le forum WinDev
    Réponses: 4
    Dernier message: 27/02/2006, 19h23
  3. [débutant] calcul sur date
    Par Regis.C dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 04/01/2005, 10h51
  4. Resutlat de calcul sur date formaté
    Par neness dans le forum SQL
    Réponses: 6
    Dernier message: 16/06/2004, 15h34
  5. Calcul sur date
    Par Thomad dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/09/2003, 08h55

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