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

Shell et commandes GNU Discussion :

Vérification d'une date


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Par défaut Vérification d'une date
    Bonjour tout le monde,
    Je suis entrain de faire un script qui prend en paramètre une date, mais je n'ai sais pas du tout si c'est possible de faire un contrôle sur cette date genre:
    1)le format de cette date est yyyy-mm-dd
    2)yyyy est un nombre entier
    3)mm compris entre 1 et 12
    4)dd compris entre 1 et 31

    Pour la 1) je vous cache pas que je ne sais pas du tout comment faire.
    Pour la 2) j'ai pu récupéré yyyy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (annee=$(expr "$1" : "\(....\)")
    et je cherche comment vérifier que c'est un entier.
    Pour la 3_ et la 4) je suis la piste de "index" mais pour l'instant que des échecs.

    si vous avez des idées n'hésiter surtout pas.
    Merci d'avance

  2. #2
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Pour tester la structure d'une chaine grep est une solution :

    narma@linimi:~$ date="2007-02-22"
    narma@linimi:~$ if (echo $date | egrep -q "^[0-9]{4}-[0-9]{2}-[0-9]{2}$") ;then echo "ok"; else echo "erreur"; fi
    ok
    narma@linimi:~$ date="2007-02-225"
    narma@linimi:~$ if (echo $date | egrep -q "^[0-9]{4}-[0-9]{2}-[0-9]{2}$") ;then echo "ok"; else echo "erreur"; fi
    erreur
    Après pour découper la chaine, regarde du coté de "sed" ou "awk". Pour tester les valeur "test" et sa forme abbrégé avec le "if [ ... ]".

    Voici les pages de manuel : http://man.developpez.com/
    et un tutoriel sur le shell : http://marcg.developpez.com/ksh/

    [EDIT]
    Pour l'extraction de sous-chaine il y aussi l'opérateur ${...} qui est peut être plus simple que sed ou awk :
    narma@linimi:~$ echo ${date:0:4}
    2007

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Par défaut
    je te remercie pour ta réponse je vais voir ça tout de suite.

    Merci encore

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Par défaut
    Tout d'abord je te remercie pour les commandes et le tutoriel.
    J'ai une autre question : si je passe en paramètre une date yyyymmdd, comment je peux calculer $date+1
    exemple: si je passe 20070202 ça me donne 20070203
    si je passe 20070228 ça me donne 20070301

    Merci

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Par défaut
    Comme je n'ai rien trouvé au niveau ksh, j'ai fais une classe java (appelé dans mon script avec un parametre date).Cette classe fait le clacule de "date + 1".

    C'est ça ma solution.

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

Discussions similaires

  1. Vérification d'une date
    Par SamusPlusPlus dans le forum Débuter
    Réponses: 1
    Dernier message: 09/04/2009, 10h34
  2. [RegEx] fonction de vérification d'une date
    Par yosraisi dans le forum Langage
    Réponses: 5
    Dernier message: 22/05/2008, 09h59
  3. [Lazarus] Vérification d'une date
    Par Ministar dans le forum Lazarus
    Réponses: 2
    Dernier message: 22/01/2007, 13h44
  4. [Javascript] Vérification d'une date
    Par slyv dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/11/2005, 08h36
  5. Vérification d'une date
    Par MonsieurPaul dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 12/08/2005, 16h39

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