Afficher des heures: 36:00 et non pas: 02:00
Résolu/Fermé
moi411
Messages postés
180
Date d'inscription
samedi 22 novembre 2003
Statut
Membre
Dernière intervention
25 juin 2017
-
17 juil. 2015 à 23:24
moi411 Messages postés 180 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 - 18 juil. 2015 à 07:43
moi411 Messages postés 180 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 - 18 juil. 2015 à 07:43
A voir également:
- Afficher des heures: 36:00 et non pas: 02:00
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- 00 00 00 06 facture free ✓ - Forum Mobile
- 00 00 00 06 ✓ - Forum Mobile
- 09 48 00 05 05 ✓ - Forum Mobile
- Afficher un tableau en c - Forum C
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
18 juil. 2015 à 00:53
18 juil. 2015 à 00:53
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);
}
}
18 juil. 2015 à 07:43
"...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...