J'essaie de calculer le nombre de jours entre deux dates. Voici mon code:Jours entre deux dates. Où est l'erreur dans les dates?
public class Main {
public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
Date date1 = null;
Date date2 = null;
String str1 = "01.01.1900";
String str2 = "16.06.2017";
try{
date1 = format.parse(str1);
date2 = format.parse(str2);
} catch (Exception e){
e.printStackTrace();
}
long i1 = date2.getTime() - date1.getTime();
System.out.println(i1/86400000);//milisec to days
}
}
Le résultat est: 42899 jours.
mais si nous Revérifier qu'il soustraction dans EXCEL, le résultat est 42901
S'il vous plaît, quelqu'un peut me expliquer où est le résultat de la vérité?
Je ne peux plus fortement déconseiller l'utilisation du l'héritage de la classe 'java.util.Date'. Vous devriez plutôt regarder dans le paquet 'java.time' et trouver la classe la plus appropriée pour votre cas d'utilisation (probablement' LocalDate' dans ce cas). –
Vous devriez tester votre code en utilisant des dates plus proches, par exemple '01.01.1900' et' 02.01.1900'. Peut-être alors vous trouvez où est le problème (ou peut-être que Excel compte quelque chose de différent de vous). –
la même différence de 2 jours –