Je récupère deux horodatages d'une base de données (check_in et check_out). J'ai besoin de comparer les deux pour savoir combien de jours se sont écoulés entre les deux horodatages. Comment cela peut-il être fait en Java?Comparaison des horodatages en Java pour obtenir une différence en jours
2
A
Répondre
5
Il vous suffit de soustraire check_out et check_in et de convertir les unités dont vous disposez en jours. Quelque chose comme
//pseudo-code
diff_in_millis = Absolute Value Of (check_out - check_in) ;
diff_in_days = diff_in_millis/(1000 * 60 * 60 * 24);
2
Après extrait de code aussi donnera jours différence
private int getDaysBetween (Timestamp start, Timestamp end) {
boolean negative = false;
if (end.before(start)) {
negative = true;
Timestamp temp = start;
start = end;
end = temp;
}
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(start);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
GregorianCalendar calEnd = new GregorianCalendar();
calEnd.setTime(end);
calEnd.set(Calendar.HOUR_OF_DAY, 0);
calEnd.set(Calendar.MINUTE, 0);
calEnd.set(Calendar.SECOND, 0);
calEnd.set(Calendar.MILLISECOND, 0);
if (cal.get(Calendar.YEAR) == calEnd.get(Calendar.YEAR)) {
if (negative)
return (calEnd.get(Calendar.DAY_OF_YEAR) - cal.get(Calendar.DAY_OF_YEAR)) * -1;
return calEnd.get(Calendar.DAY_OF_YEAR) - cal.get(Calendar.DAY_OF_YEAR);
}
int days = 0;
while (calEnd.after(cal)) {
cal.add (Calendar.DAY_OF_YEAR, 1);
days++;
}
if (negative)
return days * -1;
return days;
}
0
Je trie mes Set myClassSet par date procédez comme suit:
private Set<MyClass> orderLocation(Set<MyClass> myClassSet) {
List<MyClass> elementList = new ArrayList<MyClass>();
elementList.addAll(myClassSet);
// Order by date
Collections.sort(elementList, this.comparatorElements);
Set<MyClass> l = new TreeSet<MyClass>(comparatorElements);
l.addAll(elementList);
return l;
}
private final Comparator<MyClass> comparatorElements = new Comparator<MyClass>() {
@Override
public int compare(MyClass element1, MyClass element2) {
long l1 = element1.getDate().getTime();
long l2 = element2.getDate().getTime();
if (l2 > l1)
return 1;
else if (l1 > l2)
return -1;
else
return 0;
}
};
0
int frequency=0;
Calendar cal1 = new GregorianCalendar();
Calendar cal2 = new GregorianCalendar();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = sdf.parse("2014-11-01 04:04:51.451975");
cal1.setTime(date);
date = sdf.parse("2015-11-30 04:04:51.451975");
cal2.setTime(date);
Date d1,d2;
d1=cal1.getTime();
d2=cal2.getTime();
frequency =(int)(TimeUnit.DAYS.convert(d2.getTime() - d1.getTime(), TimeUnit.MILLISECONDS));
System.out.println ("Days: " + frequency);
+0
Cela peut ne pas toujours faire ce que vous attendez car il tronque le résultat. –
Questions connexes
- 1. Différence MySql entre deux horodatages en secondes?
- 2. Comment ajouter des jours à une date en Java
- 3. Obtenir les horodatages futurs
- 4. Regex pour horodatages en php
- 5. Différence de temps entre les horodatages unix
- 6. Différence de jours entre deux dates Java?
- 7. Calcul de la différence des dates en Java
- 8. Traiter les horodatages en R
- 9. Différence d'horodatage en heures pour PostgreSQL
- 10. Comparaison de HashMaps en Java
- 11. Comparaison des dates en millisecondes
- 12. Shell script pour obtenir la différence en deux dates
- 13. Modification des heures en jours
- 14. Comment obtenir les résultats corrects calculant deux horodatages unix
- 15. Problème de trouver la différence en jours entre deux dates
- 16. Générer la différence "floue" de deux fichiers en Python, avec une comparaison approximative des flottants
- 17. Afficher la date Différence en jours dans la Html.textbox
- 18. Calculer la durée en mois entre deux horodatages unix
- 19. obtenir la différence entre la date dans les jours à Java
- 20. Comparaison des MD5 en Python
- 21. Comparez deux horodatages par minute différence?
- 22. Comparaison de deux collections en Java
- 23. Comment obtenir la différence entre deux jours dans l'iPhone
- 24. Comment puis-je trier les horodatages en Perl?
- 25. Excel 2005: Différence entre deux jours, en comptant la différence d'heures
- 26. Quelle est la différence de comparaison?
- 27. Comment puis-je obtenir deux thread pour insérer des horodatages spécifiques dans une table?
- 28. Facile à utiliser les horodatages en Python
- 29. expression XPath pour obtenir une valeur d'attribut échoue en Java
- 30. Comment combiner deux lignes en fonction des horodatages
Cela me avait donné quelques maux de tête si les deux horodateurs proviennent d'hôtes différents. Une différence de quelques millisecondes sur une bordure de jour (12:00) peut entraîner des valeurs différentes. – yottamoto