Maison >Java >javaDidacticiel >Comment calculer avec précision la différence de jour entre deux dates Joda-Time ?
Calcul de la différence de jour entre les dates Joda-Time
Dans Joda-Time, déterminer la différence entre deux dates en jours nécessite de prendre en compte les écarts de temps . Pour calculer avec précision le nombre de jours, il est nécessaire d'ignorer les heures, les minutes et les secondes.
Solution originale utilisant Days.daysBetween
La méthode Days.daysBetween apparaît pour apporter une solution adaptée, mais il rencontre des problèmes lorsqu'un rendez-vous a lieu le soir et l'autre le matin. Cela est dû aux cas où « début de la journée » peut faire référence de manière ambiguë à 1 heure du matin plutôt qu'à minuit dans certains fuseaux horaires.
Calcul précis à l'aide de LocalDate
Pour contourner cette ambiguïté , il est recommandé d'utiliser LocalDate au lieu de DateTime en conjonction avec Days.daysBetween. LocalDate représente une date sans information d'heure, garantissant que le résultat reflète la différence en jours uniquement.
Exemple
Considérons l'exemple suivant :
DateTime start = new DateTime(2013, 10, 20, 5, 0, 0, DateTimeZone.forID("America/Sao_Paulo")); DateTime end = new DateTime(2013, 10, 21, 13, 0, 0, DateTimeZone.forID("America/Sao_Paulo")); int daysBetween = Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays(); System.out.println(daysBetween); // Prints 1
Conclusion
En utilisant LocalDate, le calcul de la différence de jours devient précis, éliminant incohérences causées par les variations de fuseau horaire et la possibilité que les dates de début et de fin s'étendent sur des jours différents en raison du décalage horaire.
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!