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 Java Discussion :

Obtenir une durée


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Points : 97
    Points
    97
    Par défaut Obtenir une durée
    Bonjour!
    J'ai un programme dans lequel je dois obtenir un temps d'execution, j'extrais donc la date de debut et de fin en millisecondes... Existe t'il une API pour obtenir simplement la difference entre deux dates en hh:mm:ss?

    Merci d'avance,
    LDPDC

    PS: s'il faut le faire à la main je le ferait mais je suppose que cela n'est pas necessaire...

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 996
    Points
    7 996
    Par défaut
    Regarde apres currentTimeMillis() dans Class System.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Regarde apres currentTimeMillis() dans Class System.
    Merci, mais ça c'est déjà fait, la question est de savoir comment parser ça en hh:mm:ss ensuite...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 55
    Points : 73
    Points
    73
    Par défaut
    Tu commences ton programme par cet appel
    Date d1 = new Date();

    A la fin de la dernière instruction, tu fais

    System.out.println("durée en secondes depuis le début : " + ((double) (new Date().getTime() - d1.getTime())) / 1000);

    et tu a le résultat en nombre de secondes.



  5. #5
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Le plus simple c'est de faire la différence des currentTimeMillis, puis new Date(la_difference), et pour formater tu utilises SimpleDateFormat

    cf : la FAQ sur le formatage de date

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 55
    Points : 73
    Points
    73
    Par défaut
    Tu fais ce que je t'avais dit sauf que tu remplace le message par celui là

    System.out.println("le temps est "+(new SimpleDateFormat().format(d2.getTime()-d1.getTime())));

    Là tu l'obtiendra comme tu le voulais avec SimpleDateFormat().


  7. #7
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Il vaut mieux utiliser System.currentTimeMillis, ça évite l'instanciation d'objets pour rien, et pour SimpleDateFormat il vaut mieux utiliser le constructeur avec la String afin d'avoir le format qui te convient

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par remika Voir le message
    Le plus simple c'est de faire la différence des currentTimeMillis, puis new Date(la_difference), et pour formater tu utilises SimpleDateFormat

    cf : la FAQ sur le formatage de date
    C'est en fait ce que j'avais essayé, seulement la soustraction entre les deux TimeMillis nous donne epoch + la durée mesurée, donc si je parse avec un SimpleDate, j'obtiens ma durée + une heure, que je peux bien évidemment soustraire mais ça manque d'élégance et c'est pour ça que j'ai posé cette question.

    Après tout c'est peut être la seule solution, mais je suis vraiment étonné qu'il n'existe pas de classe capable de passer de millisecondes en heures/min/sec

    Merci à tous en tout cas pour vos réponses et si quelqu'un possède une meilleure solution, qu'il n'hésite pas!

  9. #9
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Points : 480
    Points
    480
    Par défaut
    Bonjour,

    A mettre au conditionnel!!
    Je pense qu'en modifiant le timeZone du formatter cela devrait fonctionner:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DateFormat df = new SimpleDateFormat("HH:mm:ss");
    df.setTimeZone(TimeZone.getTimeZone("GMT+0"));

Discussions similaires

  1. [Forum] Obtenir une durée à partir de deux chaines de caractères
    Par foufou27 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 24/03/2012, 18h59
  2. Comment obtenir la durée d'une vidéo?
    Par bakabdel dans le forum ASP.NET
    Réponses: 0
    Dernier message: 13/04/2009, 13h39
  3. obtenir la durée d'exécution d'une méthode simple
    Par Benoit_T dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 27/03/2009, 11h12
  4. [SQL] Ajouter une durée à une date et obtenir une date valide
    Par bigltnt dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/06/2007, 14h55
  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