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 :

Opération sur une date sous SUN SOLARIS


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1
    Par défaut Opération sur une date sous SUN SOLARIS
    Bonjour,

    Je souhaiterai effectuer une opération sur une date sous SOLARIS:

    - Récupérer le mois en cours et le soustraire de 3 mois:

    exemple:
    le mois en cours: septembre - 3 mois = juin

    Comment faire?

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    bienvenue, déjà

    et tu peux te fier aux classiques du shell pour cette opération.
    la solution facile à comprendre

    sur solaris tu utilises je suppose ksh :
    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
    #!/bin/ksh
    moi=$(date +%m | sed 's/^0//')
    # pour eviter le probleme du 09 au lieu de 9 pour septembre
    case $moi in
    1) # le cas de janvier ! penser à changer de cycle
    # donc janvier -3 = octobre
    resultat=10
    ;;
    2) resultat=11
    ;; # idem pour fevrier-3 = novembre
    3) resultat=12
    ;; # idem pour mars -3 = decembre
    4) resultat=1
    ;;
    # (....)
    # faire chaque moi
    esac
    mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/ksh
    moi=$(date +%m | sed 's/^0//')
    resultat=$(( $moi - 3 ))
    case $resultat in
    -1) resultat=12 
    ;; # decembre donc
    -2) resultat=11
    ;; # novembre
    -3) resultat=10
    ;; # octobre
    esac

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 660
    Par défaut
    le sed pourrait ne pas être indispensable; normalement, tous les ksh devraient supporter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Bond=0007
    echo ${Bond#0}
    007
    non ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/06/2012, 15h53
  2. Opération sur une date
    Par openlife dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/11/2008, 09h10
  3. opération sur une date
    Par openlife dans le forum Développement
    Réponses: 1
    Dernier message: 19/11/2008, 19h39
  4. Sous-requête sur une date
    Par ERWPER dans le forum Langage SQL
    Réponses: 6
    Dernier message: 09/10/2008, 12h51
  5. opérations sur les dates
    Par coucoucmoi dans le forum Débuter
    Réponses: 2
    Dernier message: 12/08/2003, 11h45

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