2012-01-14 3 views
2

Я бы реализовал метод, который получает во входной двоичной дате объекта и вычисляет время, прошедшее между этими двумя. Как я могу реализовать что-то подобное? Некоторая идея?вычислить время, прошедшее с даты начала до даты окончания

+0

Попробуйте [Joda-Time] (http://joda-time.sourceforge.net/) –

ответ

2

В каких единицах вы ожидаете ответа? Вот одна возможность:

public static String timeBetween(Date start, Date end) { 
    long timeDiff = Math.abs(end.getTime() - start.getTime()); 
    String diff = String.format("in days: %d | in hours: %d | in minutes: %d", 
     TimeUnit.MILLISECONDS.toDays(timeDiff), 
     TimeUnit.MILLISECONDS.toHours(timeDiff), 
     TimeUnit.MILLISECONDS.toMinutes(timeDiff)); 
    return diff; 
} 
+0

Будьте осторожны с абсолютным. вы, возможно, в беде за это! – MozenRath

1
public long getDifference(Date strt, Date end){ 
    long s = strt.getTime(); 
    long e = end.getTime(); 
    return e-s; 

} 

Возвращает количество миллисекунд между им

1

очень грубый метод был бы взять время каждого объекта даты в миллисекундах и вычтите их вычислить длительность. С этой продолжительностью вы можете вычислить количество секунд, минут, дней и т. Д. В течение продолжительности.

Это грубый метод, потому что он не может быть на 100% точным во всех ситуациях. Например, переход на летнее время, високосные годы и прыжковые секунды усложняют это вычисление.

Если вы можете принять эти неточности, грубый метод, вероятно, достаточен. Если вам нужна более высокая точность, рекомендуется использовать стороннюю библиотеку. Joda-Time предоставляет концепцию Period, которая способна вычислять количество секунд, минут, дней и т. Д. Между двумя экземплярами даты.

Смежные вопросы