Java TimeUnit.MILLISECONDS.toDays() дает неправильный результатJAVA

Программисты JAVA общаются здесь
Anonymous
Java TimeUnit.MILLISECONDS.toDays() дает неправильный результат

Сообщение Anonymous »

Я пытаюсь вычислить разницу между двумя днями в количестве дней. Почему-то сравнение 03.01.2013 и 04.01.2013 дает результат 30, как и сравнение 03.01.2013 и 31.03.2013

Код: Выделить всё

Calendar cal = Calendar.getInstance();
cal.clear();

cal.set(2013, Calendar.MARCH, 1);
Date start = cal.getTime();

cal.set(2013, Calendar.APRIL, 1);
Date end = cal.getTime();

long days = TimeUnit.MILLISECONDS.toDays(end.getTime() - start.getTime());
System.out.println("!!! Amount of days : " + String.valueOf(days));

>> 30

cal.set(2013, Calendar.MARCH, 1);
start = cal.getTime();

cal.set(2013, Calendar.MARCH, 31);
end = cal.getTime();

days = TimeUnit.MILLISECONDS.toDays(end.getTime() - start.getTime());
System.out.println("!!! Amount of days : " + String.valueOf(days));

>> 30
Почему это?

Подробнее здесь: https://stackoverflow.com/questions/215 ... ong-result

Вернуться в «JAVA»