рассчитать время, прошедшее с даты начала до даты окончания - PullRequest
2 голосов
/ 15 января 2012

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

Ответы [ 3 ]

2 голосов
/ 15 января 2012

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

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;
}
1 голос
/ 15 января 2012

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

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

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

1 голос
/ 15 января 2012
public long getDifference(Date strt, Date end){
    long s = strt.getTime();
    long e = end.getTime();
    return e-s;

}

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

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