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

JavaScript Discussion :

Extraire les 2 derniers chiffres d'un nombre longueur inconnu


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut Extraire les 2 derniers chiffres d'un nombre longueur inconnu
    Bonsoir,

    J'aimerais extraire les 2 derniers chiffres d'un nombre dont on ne connais pas la longueur. (ex : 330, 1346, 12005...)

    Je compte le nombre de chiffre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var duree = "1346";
     
    compter_Nbchiffre = (duree.length);
    Puis j'extraie les 2 chiffres de droite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DernierChiffre = duree.substr(2,2);
    Mon code n'est valable que pour un nombre à 3 chiffres, comment le rendre valable pour un nombre de taille inconnu ?

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    Mon code n'est valable que pour un nombre à 3 chiffres, comment le rendre valable pour un nombre de taille inconnu ?
    comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var duree = "13754702";
     
    DernierChiffre = duree.substring(duree.length-2, duree.length);
     
    alert(DernierChiffre);
    Je préfère la méthode substring() à la méthode substr(). Je sais qu'il y a une différence entre les deux mais je ne sais plus laquelle

    [Edit]

    je viens de trouver :
    La seule différence (avec la méthode substring) tient dans le second paramètre qui indique le nombre de caractères à extraire.
    [/Edit]

  3. #3
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Merci ca fonctionne !

    Voici ma fonction terminée, pouvez-vous me donner votre avis concernant la syntaxe et si j'aurais pu faire plus court ? ( Je débute ).
    Cette fonction convertie un nombre de taille aléatoire en heure et minute, sachant que les minutes représentent toujours les 2 derniers chiffres.

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    function convert_nombre()
    {
    var duree = "13790";
     
    compter_Nbchiffre = (duree.length); // Compte le nombre de chiffre dans durée
     
    PremierChiffre = duree.substr(0,1); // retourne le premier chiffres de la durée en partant de la gauche
    DeuxpremierChiffre = duree.substr(0,2); // retourne les 2 premiers chiffres de la durée en partant de la gauche
    TroispremierChiffre = duree.substr(0,3); // retourne les 3 premiers chiffres de la durée en partant de la gauche
    QuatrepremierChiffre = duree.substr(0,4); // retourne les 4 premiers chiffres de la durée en partant de la gauche
    CinqpremierChiffre = duree.substr(0,5); // retourne les 5 premiers chiffres de la durée en partant de la gauche
    DernierChiffre = duree.substring(duree.length-2, duree.length); //Retourne les 2 derniers chiffres de duree en partant de la droite
     
    alert(DernierChiffre); // Pour test
    //alert(compter_Nbchiffre+' '+PremierChiffre+' '+DeuxpremierChiffre+' '+TroispremierChiffre+' '+DernierChiffre); // Pour test
     
    var minute_en_heure = Math.floor(DernierChiffre/60)+"h"+(DernierChiffre%60); //Conversion minute en heure (ex: 0h30 pour duree = 30)
    var p = minute_en_heure.split('h');
    var h1 = parseInt(p[0]); // Extraction des heures
    var minute = p[1]; // Extraction des minutes
    // Conversion des string en integer pour les sommes.
    var Pchiffre = parseInt(PremierChiffre);
    var Dchiffre = parseInt(DeuxpremierChiffre);
    var Tchiffre = parseInt(TroispremierChiffre);
    var Qchiffre = parseInt(QuatrepremierChiffre);
    var Cchiffre = parseInt(CinqpremierChiffre);
     
    var heure1 = minute_en_heure; // Si duree = 2 chiffres.
    var heure2 = h1+Pchiffre+'h'+minute;
    var heure3 = h1+Dchiffre+'h'+minute;
    var heure4 = h1+Tchiffre+'h'+minute;
    var heure5 = h1+Qchiffre+'h'+minute;
    var heure6 = h1+Cchiffre+'h'+minute;
     
    	switch (compter_Nbchiffre){
    	case 2:
    		alert (heure1);
    					break;
    	case 3:
    		alert (heure2);
    					break;
    	case 4:
    		alert (heure3);
    					break;
    	case 5:
    		alert (heure4);
    					break;
    	case 6:
    		alert (heure5);
    					break;
    	case 7:
    		alert (heure6);
    					break;
    			default :
    					break;
    	}
    }

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    si ta valeur est en minutes, tu peux utiliser l'objet date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var dureeStr = "135"; // 135 minutes soit 2 heures et 15 minutes
    var dureeInt = parseInt(dureeStr);
     
    var maDate = new Date(0, 0, 0, 0, dureeInt, 0); 
     
    alert(maDate.getHours()+"h "+maDate.getMinutes()+"min "+maDate.getSeconds()+"s")
    pour dureeStr="135" (minutes), tu as 2 heures et 15 minutes

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 662
    Points
    66 662
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var duree = "13754702";
    alert(duree.match(/\d{2}$/))
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var duree = "13754702";
    alert(duree.match(/\d{2}$/))
    et comment tu convertis les heures en minutes ?


  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 662
    Points
    66 662
    Billets dans le blog
    1
    Par défaut
    J'aimerais extraire les 2 derniers chiffres d'un nombre dont on ne connais pas la longueur. (ex : 330, 1346, 12005...)
    c'était pas la question de départ ...
    Si il s'agit d'une conversion heur minutes secondes il faut en effet utiliser les fonction get sur date ou time ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    c'était pas la question de départ ...
    Si il s'agit d'une conversion heur minutes secondes il faut en effet utiliser les fonction get sur date ou time ...
    oui en effet tu as raison

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

Discussions similaires

  1. Récupérer les derniers chiffres d'un nombre
    Par marco858 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/07/2010, 16h57
  2. [Dev-Pascal] Inverser les deux derniers chiffres d'un nombre
    Par chalou999 dans le forum Autres IDE
    Réponses: 5
    Dernier message: 11/10/2009, 10h01
  3. extraire les deux premiers chiffres d'un nombre
    Par _debutant dans le forum Excel
    Réponses: 3
    Dernier message: 23/09/2008, 11h16
  4. Réponses: 2
    Dernier message: 18/07/2006, 11h40
  5. Récuperer les 2 derniers chiffres d'une année
    Par muquet dans le forum Débuter
    Réponses: 5
    Dernier message: 03/02/2006, 11h47

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