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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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