Я пытаюсь рассчитать количество дней между двумя датами. Вот мой код:
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
}
}
Результат: 42899 дней.
НО, если мы перепроверим это вычитание в EXCEL, результат будет 42901
Пожалуйста, кто-нибудь может объяснить мне, где истинный результат?
java.util.Date
. Вместо этого вам следует заглянуть в пакетjava.time
и найти класс, наиболее подходящий для вашего варианта использования (вероятно,LocalDate
в данном случае). - person Joe C   schedule 17.06.201701.01.1900
и02.01.1900
. Может быть, тогда вы обнаружите, в чем проблема (или, может быть, Excel считает что-то другое, чем вы). - person Mateusz Korwel   schedule 17.06.201786400000
миллисекунды, является упрощением; это не учитывает переход на летнее время. - person Codor   schedule 17.06.2017