Bonjour à tous !
Je demande à un utilisateur de me saisir un nombre de minutes. Ce nombre de minutes me servira plus tard à faire un compte à rebours Heures/Minutes/Secondes.
Le plus approprié pour travailler avec les dates et autres données temporelles reste de convertir la durée en millisecondes, je multiplie donc le nombre de minutes par 60 * 1000.
Y'a un foirage quelque part parce que pour 120 minutes, soit 7 200 000 millisecondes voici le résultat de trois fonctions différentes (je n'affiche que le nombre d'heure pour l'instant) :
Affiche : 3
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Long maxPause = cp.getTempsPause(); Calendar cal = GregorianCalendar.getInstance(); cal.setTimeInMillis(maxPause); System.out.println("Nombre d'heures : "+cal.get(Calendar.HOUR_OF_DAY));
Affiche : 3
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Long maxPause = cp.getTempsPause(); private final java.text.SimpleDateFormat pauseTimerFormat = new java.text.SimpleDateFormat(" HH"); System.out.println("Nombre d'heures : "+timerFormat.format(new Date(maxPause));
et enfin :
Affiche : 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Long maxPause = cp.getTempsPause(); System.out.println("Nombre d'heures : "+TimeUnit.HOURS.convert(maxPause, TimeUnit.MILLISECONDS));
Il me semble que jusqu'à aujourd'hui 120 minutes font bien 2h et je me demande pourquoi je n'obtiens pas le résultat attendu avec les deux premières fonctions.
C'est un peu embêtant parce que SimpleDateFormat est bien pratique pour convertir vers une String et que j'ai besoin d'afficher le temps restant. Il serait simple de coder quelque chose qui fonctionne mais je m'interroge quand même sur ce problème...
Merci pour vos éclaircissements![]()
Partager