Quel est le moyen efficace de trouver si une date est 5 jours plus tôt qu'un autre jour? Ai-je besoin d'analyser les deux jours en utilisant un SimpleDateFormat particulier avant de comparer?Trouver la différence de date
Répondre
plus rapidement, mais moins avec précision, vous pourriez mettre à la fois dans un java.util.Date, getTime() sur les deux, et diviser la différence par le nombre de millisecondes en un jour .
Vous pouvez le rendre un peu plus précis en créant deux objets Calendrier et travailler avec ceux-ci.
Si vous voulez vraiment résoudre ce problème, et passez un bon moment, regardez Joda Time.
La meilleure API de date Java est Joda Time. Il rend ces tâches, et d'autres, beaucoup plus facile que d'utiliser l'API standard.
L'interface Calendar
a quelques bonnes méthodes, y compris before
, after
et equals
.
L'API entière est cependant assez épique échouer: http://stackoverflow.com/questions/1697215/what-is-your-favourite-java-api-annoyance/1697229#1697229 Voir par exemple l'exemple de calendrier et l'exemple de jodatime dans ce sujet: http://stackoverflow.com/questions/567659/calculate-elapsed-time-in-java-groovy/1776721#1776721 – BalusC
Date date1 = // whatever
Date date2 = // whatever
Long fiveDaysInMilliseconds = 1000 * 60 * 60 * 24 * 5
boolean moreThan5Days = Math.abs(date1.getTime() - date2.getTime()) > fiveDaysInMilliseconds
Vous ne pouvez pas simplement dire 'date1 - date2'. –
Merci, j'ai oublié les appels à 'getTime()' - J'ai récemment travaillé avec Groovy qui surcharge l'opérateur '-' pour que vous puissiez dire 'date1 - date2' –
Vous pouvez faire
Long DAY_IN_MILLIS = 86400000;
if((dateA - dateB) > DAY_IN_MILLIS * 5) {
// dateA is more than 5 days older than dateB
}
jours = (date2.getTime() - date1.getTime())
Ceci n'est pas correct depuis java.util.Date. getTime() renvoie le nombre de millisecondes. Donc cette différence donne le nombre de millisecondes entre date1 et date2. – wheleph
Si vous devez ignorer le temps des dates, vous peut faire quelque chose comme
public static boolean compare5days(Date date, Date another) {
Calendar cal = Calendar.getInstance();
cal.setTime(another);
cal.add(Calendar.DATE, -5);
// clear time
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return date.before(cal.getTime());
}
- 1. Trouver la différence de date en PHP?
- 2. Différence de date MySQL
- 3. trouver la différence entre 2 dates
- 4. Comment calculer la différence de date?
- 5. requête MySQL pour la différence de date
- 6. différence étrange entre new Date() et la date de FileCreation
- 7. Groupe par trouver la différence
- 8. Problème de trouver la différence en jours entre deux dates
- 9. Date de Zend - différence jour
- 10. Différence de date en minutes
- 11. Date Différence dans ASP.Net
- 12. Trouver la prochaine date disponible
- 13. javascript différence Date
- 14. Trouver la différence entre la liste
- 15. Date différence avec LINQ
- 16. Comment trouver la différence entre deux chaînes?
- 17. expression Lambda pour trouver la différence
- 18. Trouver la différence entre 2 lignes spécifiques
- 19. Trouver la différence minimale entre deux tableaux
- 20. La différence de date duplique la requête entre la dernière et l'avant-dernière date
- 21. JQuery Calculer la différence jen 2 Date textboxes
- 22. Différence de date dans JQuery reçu NAN
- 23. Différence de date dans SQL Server 2005
- 24. Python différence de date lisible par l'homme
- 25. PHP - Fonction date - trouver la semaine précédente
- 26. Afficher la différence de date dans le champ MS Word
- 27. Comment comparer la différence de date textbox gridview
- 28. Annoter un queryset avec la différence de date moyenne? (django)
- 29. Calculer date de la différence dans les semaines
- 30. regex pour trouver la date dir
5 jours civils? 5 jours ouvrables? –