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

Langage Perl Discussion :

problème de condition if elsif


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Par défaut problème de condition if elsif
    Bonjour,

    tout d'abord je suis débutant en PERL.

    J'ai un souci que je n'arrive pas à expliquer, je fais des tests de condition pour définir le dernier jour du mois d'avant la date système et lorsque je veux tester pour les mois : 08 09 10 11

    cela ne fonctionne plus, pourriez vous m'aider s'il vous plait.

    voici mon code qui fonctionne :

    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
    28
    29
    30
    31
    32
    33
    my ($secondes, $minutes, $heures, $jour_mois, $mois,
        $an, $jour_semaine, $jour_calendaire, $heure_ete) = localtime(time);
    $minutes = sprintf("%02d",$minutes);
    $heures = sprintf("%02d",$heures);
    $jour = sprintf("%02d",$jour_mois);
    $mois_avant = sprintf("%02d",$mois);
    $mois = sprintf("%02d",$mois+1);
     
    if ($mois_avant == 0){
    $mois_avant = 12;
    $dernierjour = 31;
    }
    elsif (($mois_avant == 01)||($mois_avant == 03)||($mois_avant == 05)||($mois_avant == 07)){
    $dernierjour = 31;
    }
    elsif (($mois_avant == 04)||($mois_avant == 06)){
    $dernierjour = 30;
    }
    elsif ($mois_avant == 02){
    $dernierjour = 28;
    }
     
     
    $an = sprintf("%04d",$an+1900);
    $startdate= '01/'.$mois_avant."/".$an;
    $enddate= $dernierjour.'/'.$mois_avant."/".$an;
    $fname = $dernierjour."_".$mois_avant;
     
    # modification du sql
    if (!-d "sql"){
    	mkdir("sql");
    }
    open(O,">sql/$fname.sql");
    Et maintenant il ne fonctionne plus :

    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
    28
    29
    30
    31
    32
    33
    my ($secondes, $minutes, $heures, $jour_mois, $mois,
        $an, $jour_semaine, $jour_calendaire, $heure_ete) = localtime(time);
    $minutes = sprintf("%02d",$minutes);
    $heures = sprintf("%02d",$heures);
    $jour = sprintf("%02d",$jour_mois);
    $mois_avant = sprintf("%02d",$mois);
    $mois = sprintf("%02d",$mois+1);
     
    if ($mois_avant == 0){
    $mois_avant = 12;
    $dernierjour = 31;
    }
    elsif (($mois_avant == 01)||($mois_avant == 03)||($mois_avant == 05)||($mois_avant == 07)||($mois_avant == 08)){
    $dernierjour = 31;
    }
    elsif (($mois_avant == 04)||($mois_avant == 06)){
    $dernierjour = 30;
    }
    elsif ($mois_avant == 02){
    $dernierjour = 28;
    }
     
     
    $an = sprintf("%04d",$an+1900);
    $startdate= '01/'.$mois_avant."/".$an;
    $enddate= $dernierjour.'/'.$mois_avant."/".$an;
    $fname = $dernierjour."_".$mois_avant;
     
    # modification du sql
    if (!-d "sql"){
    	mkdir("sql");
    }
    open(O,">sql/$fname.sql");
    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 606
    Par défaut


    Hello,

    le problème, c'est que tu demandes à ton programme de faire quelque chose uniquement pour tous les mois autres que 08 09 10 11.

    Il me semble que tu as oublié quelque chose... Comme un else par exemple

  3. #3
    Membre émérite Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Par défaut
    J'ai dû mal m'exprimer car dans le code n°1 cela marche et des que j'ajoute pour 08 cela ne marche pas.

    De plus j'ai aussi essayé d'ajouter pour 09 10 et 11 et même problème, et j'ai aussi essaye de faire juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($mois_avant == 08){
    $dernierjour = 31;
    }
    et cela ne marche pas , pourquoi???

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 606
    Par défaut
    Citation Envoyé par Z3phur Voir le message
    J'ai dû mal m'exprimer car dans le code n°1 cela marche et des que j'ajoute pour 08 cela ne marche pas.

    De plus j'ai aussi essayé d'ajouter pour 09 10 et 11 et même problème, et j'ai aussi essaye de faire juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($mois_avant == 08){
    $dernierjour = 31;
    }
    et cela ne marche pas , pourquoi???
    08 n'est pas du numérique, voilà pourquoi

    Ceci marcherait mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($mois_avant =~ /^08$/){
    $dernierjour = 31;
    }

  5. #5
    Membre émérite Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Par défaut
    Merci beaucoup pour ta réactivité,

    cela marche maintenant, mais pourquoi 07 est numérique et pas 08???

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 606
    Par défaut
    Citation Envoyé par Z3phur Voir le message
    Merci beaucoup pour ta réactivité,

    cela marche maintenant, mais pourquoi 07 est numérique et pas 08???
    Ah, parce que ça fonctionne avec 07 ???

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

Discussions similaires

  1. [débutant] problème de condition dans une requete
    Par banker dans le forum Access
    Réponses: 5
    Dernier message: 22/03/2006, 13h52
  2. Réponses: 7
    Dernier message: 27/02/2006, 18h04
  3. [Debutant]Problème de condition
    Par ghan77 dans le forum Langage
    Réponses: 9
    Dernier message: 13/12/2005, 15h20
  4. Problème de condition, je flanche..
    Par KibitO dans le forum Langage
    Réponses: 13
    Dernier message: 11/11/2005, 12h57
  5. Réponses: 6
    Dernier message: 17/08/2005, 12h38

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