Java 8 : Calculer la différence entre deux instances LocalDateTime dans plusieurs unités
Le calcul de la différence entre deux instances LocalDateTime dans différentes unités de temps peut présenter défis. Une approche consiste à exploiter les classes Période et Durée introduites dans Java 8.
Défis liés à la mise en œuvre initiale
Le code fourni tente de calculer la différence en combinant Période ( qui gère les années, les mois et les jours) et Durée (qui gère les heures, les minutes et les secondes). Cependant, il existe quelques incohérences dans le calcul :
Calcul amélioré
Pour garantir une précision Pour les calculs, envisagez d'utiliser l'énumération ChronoUnit, qui fournit des méthodes pour extraire des unités de temps spécifiques à partir de dates et d'heures. Voici une version améliorée :
import java.time.ChronoUnit; import java.time.LocalDateTime; import java.time.Period; public class CalculateLocalDateTimeDifference { public static void main(String[] args) { LocalDateTime toDateTime = LocalDateTime.of(2014, 9, 9, 19, 46, 45); LocalDateTime fromDateTime = LocalDateTime.of(1984, 12, 16, 7, 45, 55); Period period = Period.between(fromDateTime.toLocalDate(), toDateTime.toLocalDate()); long minutes = ChronoUnit.MINUTES.between(fromDateTime, toDateTime); long hours = ChronoUnit.HOURS.between(fromDateTime, toDateTime); System.out.println(period.getYears() + " years " + period.getMonths() + " months " + period.getDays() + " days " + hours + " hours " + minutes + " minutes."); } }
Explication
Cet algorithme amélioré fournit des résultats précis pour les différences de temps positives et négatives.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!