Найти общее количество часов между двумя датами - PullRequest
39 голосов
/ 05 января 2010

У меня есть два объекта Date, и мне нужно получить разницу во времени, чтобы я мог определить общее количество часов между ними. Они происходят из одного дня. В результате я хотел бы иметь часы и минуты.

Когда я использую .toString () в моем объекте Date, я получаю это: Пт 18 декабря 08:08:10 CST 2009

Я пробовал следующее:

long diff=(this.endDate.getTime()-this.startDate.getTime())/(60*60 * 1000);

Но это дает мне только часы, а не минуты. Я знаю, что это простая проблема, но я не могу понять это, атм.

Изменения: Окончательное решение для тех, кто заинтересован. Спасибо Майклу Брюеру-Дэвису

Period p = new Period(this.startDate, this.endDate);
long hours = p.getHours();
long minutes = p.getMinutes();

String format = String.format("%%0%dd", 2);

return Long.toString(hours)+":"+String.format(format, minutes);

Ответы [ 11 ]

0 голосов
/ 05 января 2010

Таким образом, метод getTime (), я полагаю, возвращает целое число.

В каком случае левый набор скобок имеет тип int, верно?

и

(60*60*1000)

также является int.

Что означает, что вы получаете long diff = ((int) / (int)), поэтому целочисленное деление выполняется ДО того, как вы приведете материал к long И поэтому вы теряете свои минуты.

Попробуйте разыграть их, прежде чем разделить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...