Afficher des heures: 36:00 et non pas: 02:00
Résolu
moi411
Messages postés
179
Date d'inscription
Statut
Membre
Dernière intervention
-
moi411 Messages postés 179 Date d'inscription Statut Membre Dernière intervention -
moi411 Messages postés 179 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Comme dit dans le titre je n'arriva pas à afficher le nombre exacte d'heures (après un calcul)...
Systématiquement, il convertit en jour:heures:minutes etc. alors que je voudrais simplement heures:minutes (même si ça doit afficher 1000:00)!
Voici mon code:
Affichage: 02:00 alors que je voudrais afficher 28:10.
En espérant que JAVA permette ce genre de chose, sinon il me reste la bonne vielle méthode "diviser par 60"!!!
Je vous remercie d'avance...
--
Comme dit dans le titre je n'arriva pas à afficher le nombre exacte d'heures (après un calcul)...
Systématiquement, il convertit en jour:heures:minutes etc. alors que je voudrais simplement heures:minutes (même si ça doit afficher 1000:00)!
Voici mon code:
try { SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm"); Date maDate = dateFormat.parse("10:10"); Calendar cal = Calendar.getInstance(); cal.setTime(maDate); cal.add(Calendar.HOUR, 16); cal.add(Calendar.MINUTE, 120); Date result = cal.getTime(); System.out.println(dateFormat.format(result)); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); }
Affichage: 02:00 alors que je voudrais afficher 28:10.
En espérant que JAVA permette ce genre de chose, sinon il me reste la bonne vielle méthode "diviser par 60"!!!
Je vous remercie d'avance...
--
A voir également:
- Afficher des heures: 36:00 et non pas: 02:00
- Afficher appdata - Guide
- Afficher taille dossier windows - Guide
- Windows 11 afficher d'autres options - Guide
- Afficher mot de passe wifi android - Guide
- Afficher calendrier outlook dans google agenda - Guide
1 réponse
Bonjour,
C'est normal qu'il passe au jour suivant puisque tu travailles sur des dates.
Sémantiquement parlant, une date ne peut pas avoir plus de 24h...
Une date c'est un instant sur la ligne temporelle, à ne pas confondre avec le temps qu'il y a entre deux dates et qui constitue la "distance" entre deux instants de la ligne temporelle.
Si tu veux afficher 28h10 ce n'est plus une date, mais bien du temps...
Alors il y a des bibliothèques de gestion du temps, notamment Joda Time (qui est désormais intégré à Java depuis la version 8), mais la méthode "diviser par 60" est plus simple et tout à fait justifiée ici puisque tu travailles sur du temps.
C'est normal qu'il passe au jour suivant puisque tu travailles sur des dates.
Sémantiquement parlant, une date ne peut pas avoir plus de 24h...
Une date c'est un instant sur la ligne temporelle, à ne pas confondre avec le temps qu'il y a entre deux dates et qui constitue la "distance" entre deux instants de la ligne temporelle.
Si tu veux afficher 28h10 ce n'est plus une date, mais bien du temps...
Alors il y a des bibliothèques de gestion du temps, notamment Joda Time (qui est désormais intégré à Java depuis la version 8), mais la méthode "diviser par 60" est plus simple et tout à fait justifiée ici puisque tu travailles sur du temps.
import java.time.Instant; import java.time.temporal.ChronoUnit; public class TestJava8 { public static void main(String[] args) { Instant now = Instant.now(); Instant christmas = Instant.parse("2015-12-25T00:00:00.00Z"); long hours = now.until(christmas, ChronoUnit.HOURS); Instant temp = now.plus(hours, ChronoUnit.HOURS); long minutes = temp.until(christmas, ChronoUnit.MINUTES); System.out.println(hours + ":" + minutes); } }
import java.util.Date; public class TestOldJava { public static void main(String[] args) { long now = new Date().getTime(); long christmas = Date.UTC(115, 11, 25, 0, 0, 0); long temp = (christmas - now) / (60 * 1000); long hours = temp / 60; long minutes = temp % 60; System.out.println(hours + ":" + minutes); } }
"...mais la méthode "diviser par 60" est plus simple et tout à fait justifiée ici puisque tu travailles sur du temps..."
En fait c'est ce que j'ai fait mais je pensais qu'utiliser une classe toute prête serai plus facile/rapide... J'ai encore l'habitude C# où tout (ou presque) est automatisé!!!
Bref, encore merce et bon week-end...