Différence en jours entre deux dates en Java?

J'ai besoin de trouver la nombre de jours entre deux dates: l'un est à partir d'un rapport et un est la date actuelle. Mon extrait de:

  int age=calculateDifference(agingDate, today);

Ici calculateDifference est une méthode privée, agingDate et today sont Date des objets, pour vos éclaircissements. J'ai suivi deux articles à partir d'un Java forum, Thread 1 /Thread 2.

Il fonctionne très bien dans un programme autonome bien que quand je l'ai dans ma logique à lire dans le rapport que j'obtiens une inhabituelle différence dans les valeurs.

Pourquoi est-ce qui se passe et comment puis-je résoudre ce problème?

EDIT :

Que je suis un plus grand nombre de jours par rapport à la quantité réelle de 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;
}

Remarque :

Malheureusement, aucune de ces réponses m'ont aidé à résoudre le problème. J'ai accompli ce problème avec l'aide de Joda-time bibliothèque.

  • Qu'entendez-vous par inhabituelle valeurs de la différence? Pourriez-vous être plus explicite s'il vous plaît, ou de donner un exemple de quelque sorte?
  • Ajouter Votre code, veuillez
  • Pouvez-vous poster le code pour calculateDifference méthode?
  • Pour info, le gênants de longue date du temps des classes comme java.util.Date, java.util.Calendar, et java.text.SimpleDateFormat sont maintenant héritage, supplantée par la java.de temps les classes. Voir Tutoriel Oracle. De même, le Joda-Time le projet est maintenant dans mode de maintenance, avec l'équipe conseiller de la migration à la java.les classes de temps.
InformationsquelleAutor Venkat | 2010-07-21