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

avec Java Discussion :

[PROB] Convertion ms --> heures minutes secondes millisecondes


Sujet :

avec Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Par défaut [PROB] Convertion ms --> heures minutes secondes millisecondes
    Bonjour a tous,
    je cherche comment faire pour transformé des millisecondes en heure, minutes, secondes, et milliseconde (histoire que cela soit plus simple a comprendre).

    Le temps en ms provients de ce code, il me sert avisualisé le temps d'ecution d'une partie de mon code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    long start = System.nanoTime();
    Aleatoire al=new Aleatoire(taille);
    al.resolution();
    convertTime(System.nanoTime() - start);
    voici la fonction convertTime qui devrai me convertir les ms.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void convertTime(long ms){
    		long millisecondes=ms%1000; 
    		ms=ms/1000; 
    		long secondes=ms%60; 
    		 ms=ms/60; 
    		long minutes=ms%60; 
    		 ms=ms/60; 
    		long heures=ms;
     
    		temps.setText("Temps d'execution: "+heures+"h"+minutes+"min"+secondes+"s"+millisecondes+"ms");
    	}
    Malheureusement, ce code ne fonctionne pas, et je me retrouve avec des valeur délirantes ....


    Savez vous ou se situe mon erreur ?

    Je vous remercie d'avance pour votre aide

  2. #2
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Par défaut
    Bonjour,

    regardez du côté de la classe Date et surtout la classe Calendar.
    Avec cette dernière, vous disposez de tous les outils nécessaires; elle est très puissante !

    @ bientôt...

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 389
    Par défaut
    en faite, j'ai trouvé la solution a mon probleme.
    j'avais des nanosecondes au lieu de millisecondes
    (System.currentTimeMillis() <--> System.nanoTime() )

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Encore plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void convertTime(long ms){
    SimpleDateFormat sdf = new SimpleDateFormat("'Temps d''execution = 'H:mm:ss.S");
    temps.setText(sdf.Format(ms));
    }
    Et comme ça on ne se complique pas à calculer les secondes, minutes, heures, etc.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Népomucène Voir le message
    Et comme ça on ne se complique pas à calculer les secondes, minutes, heures, etc.
    Mis à part que c'est faux !

    Comme son nom l'indique, SimpleDateFormat manipule des dates, ce qui n'est pas la même chose qu'une durée.

    Chez moi convertTime(0) me renvoi "1:00:00.0", car en fait la date "0" correspond au 1er janvier 1970 00:00 UTC... ce qui correspond au 1er janvier 1970 01:00 CET sur mon poste.


    De plus on est limité à 24h max sinon le "compteur" repart à zéro... sans compter les spécificités des calendriers si on veut traiter des intervalles très longs...


    Bref SimpleDateFormat n'est pas fait pour cela. Il vaut mieux calculer cela soit même (ou utiliser une API plus spécifique qui intègre la notion de durée).


    a++

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Oui, oui, oui, bon, tu as tout à fait raison.

    Mais comme hannibal.76 était en train de travailler sur des heures je ne suis pas allé au-delà. C'était négligent de ma part.

    Bon, cela dit, tu parles d'une "API plus spécifique qui intègre la notion de durée".
    En aurais-tu une à nous indiquer ? J'en aurai l'usage ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Joda Time est assez complète...


    a++

  8. #8
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Oui, en effet, ça a l'air pas mal ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

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

Discussions similaires

  1. [MySQL] Calculer la somme d'une durée sous la forme Heure:Minute:Seconde
    Par radhwene dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/06/2007, 10h49
  2. Réponses: 12
    Dernier message: 03/01/2007, 13h55
  3. [HIBERNATE] date sans heure minute seconde
    Par _juel_ dans le forum Hibernate
    Réponses: 1
    Dernier message: 30/06/2006, 14h43
  4. Réponses: 1
    Dernier message: 01/06/2006, 23h12
  5. Formater une durée sous la forme Heure:Minute:Seconde
    Par marsupile dans le forum C++Builder
    Réponses: 2
    Dernier message: 31/01/2004, 23h29

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