174 votes

Calculer la différence de date/heure en java

Je veux calculer la différence entre 2 dates en heures/minutes/secondes.

J’ai un petit problème avec mon code c’est ici :

Ceci devrait produire :

Cependant, j’obtiens ce résultat :

Peut-on voir ce que je fais mal ici ?

235voto

Admit Points 1402

Je préférerais utiliser suggéré `` classe.

109voto

Peter Lawrey Points 229686

Essayez

46voto

heldt Points 1394

Si vous êtes en mesure d’utiliser des bibliothèques externes, je vous recommande d’utiliser Joda-temps.

Exemple pour entre calcul :

19voto

Yves Martin Points 6294

Depuis Java 5, vous pouvez utiliser java.util.concurrent.TimeUnit afin d'éviter l'utilisation de la Magie des Chiffres comme 1 000 et 60 dans votre code.

Par le chemin, vous devez prendre soin de secondes intercalaires dans votre calcul: la dernière minute de l'année peut avoir un saut de seconde, donc en effet, elle ne dure que 60 secondes au lieu de prévu 59 secondes. La spécification ISO même plan de peut-être 61 secondes. Vous pouvez trouver le détail en java.util.Date javadoc.

8voto

Joeri Hendrickx Points 6957

Il s’agit davantage d’un problème de maths qu’un problème de java essentiellement.

Le résultat que vous recevez est correct. Ceci parce que 225 secondes est à 3 minutes (quand vous faites une division intégrale). Ce que vous voulez est ce :

  • diviser par 1000 pour obtenir le nombre de secondes -> repos est millisecondes
  • fracture qui par 60 pour obtenir le nombre de minutes -> repos sont secondes
  • fracture qui par 60 pour obtenir le nombre d’heures -> repos sont minutes

ou en java :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X