Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur java.time.Duration

Une erreur sur le calcul de période entre les dates

Sujet résolu
    17 octobre 2018 à 10:06:47

    Bonjour, tout le monde. 

    Dans le cours sur java8 et plus précisément sur les dates il y a ce code :

    LocalDateTime ldt = LocalDateTime.of(2018, Month.DECEMBER, 25, 13, 37, 0);
    
    		LocalDateTime ldt3 = ldt.minusMinutes(1337);
    		Duration d = Duration.between(ldt.toLocalTime(), ldt3.toLocalTime());
    		System.out.println("Durée : " + d.getSeconds());

    Qui donne en résultat --> Durée : 6180 

    Alors premièrement le temps devrait être négatif. Mais là ou je bug le plus, c'est que (1337 * 60) ou (-1337 * 60) n'a aucun rapport avec le "6180" trouvé. 

    J'ai réalisé des test avec des plus petits nombres et tout fonctionne très bien. Dans les docs sur LocalDateTime et Duration, rien ne mentionne une limite ou quelque chsoe du genre. Je suis donc dans l'incompréhension totale.

    Des idées ?



    • Partager sur Facebook
    • Partager sur Twitter
      17 octobre 2018 à 17:19:00

      Quand tu retranches 1337 minutes à ta première date, tu arrives au 24/12 à 15h20

      Quand tu fais ta comparaison entre les deux DATES que tu transformé en TIME, la date étant perdue, tu compares la premiere heure qui vaut 13h37 et la seconde qui vaut 15h20.

      Entre 13h37 et 15h20 il y a 1h et 43 minutes, soit 6180 secondes....et dans cet ordre, l'écart est bien positif.

      Ton erreur provient de l'interprétation que tu fais de penser que ldt.getLocatTime() > ldt3.getLocalTime(), seulement parce que ldt > ldt3. Si les dates sont bien dans cet ordre, le fait de retirer l'information des JOURS MOIS ANNEE te donne une information en HEURES et MINUTES qui ne respecte plus le même ordre.

      • Partager sur Facebook
      • Partager sur Twitter
        18 octobre 2018 à 8:47:01

        Diantre ! Je suis juste bête en fait ! Merci beaucoup





        • Partager sur Facebook
        • Partager sur Twitter

        Erreur java.time.Duration

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown