Je dois trouver nombre de jours entre deux dates L'un d'entre eux provient du rapport et l'autre de la date actuelle. Mon extrait :
int age=calculateDifference(agingDate, today);
Ici, calculateDifference
est une méthode privée, agingDate
et today
sont Date
des objets, juste pour votre clarification. J'ai suivi deux articles du Forum Java Thread1 et Sujet 2 . Il fonctionne bien dans un programme autonome. Lorsque je l'intègre à ma logique de lecture du rapport, j'obtiens des valeurs de différence inhabituelles.
Quelqu'un peut-il m'aider, pourquoi cela se produit-il et comment puis-je le réparer ?
EDIT :
J'obtiens beaucoup plus que la différence réelle des jours...
public static int calculateDifference(Date a, Date b)
{
int tempDifference = 0;
int difference = 0;
Calendar earlier = Calendar.getInstance();
Calendar later = Calendar.getInstance();
if (a.compareTo(b) < 0)
{
earlier.setTime(a);
later.setTime(b);
}
else
{
earlier.setTime(b);
later.setTime(a);
}
while (earlier.get(Calendar.YEAR) != later.get(Calendar.YEAR))
{
tempDifference = 365 * (later.get(Calendar.YEAR) - earlier.get(Calendar.YEAR));
difference += tempDifference;
earlier.add(Calendar.DAY_OF_YEAR, tempDifference);
}
if (earlier.get(Calendar.DAY_OF_YEAR) != later.get(Calendar.DAY_OF_YEAR))
{
tempDifference = later.get(Calendar.DAY_OF_YEAR) - earlier.get(Calendar.DAY_OF_YEAR);
difference += tempDifference;
earlier.add(Calendar.DAY_OF_YEAR, tempDifference);
}
return difference;
}
Merci d'avance...
Note :
Malheureusement, je n'ai pas pu obtenir la réponse de cette façon. J'ai accompli ce problème avec l'aide de Joda-time bibliothèque.