Java Duration дает другой результат в Excel - PullRequest
0 голосов
/ 28 мая 2018

есть метод, который вычисляет разницу между 2 LocalDateTimes.Я разработал некоторые тестовые данные в Excel, но метод Java не соответствует моей формуле Excel.Я предполагаю, что формула Excel неверна, но может кто-нибудь сказать мне, почему?

    private Duration difference(LocalDateTime request, LocalDateTime response) {
    Duration duration = Duration.between(request, response);
    System.out.println("difference: " + duration.toMillis());
    return duration;
}

Мои входные данные:
Запрос: 2018-02-12T13: 43: 46.456 Ответ: 2018-02-12T14: 43: 54.123

Результат формулы Excel: 3608333 миллисекунды. Метод Java: 3607667 миллисекунд

Моя формула Excel является принятым ответом здесь

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Оператор (OP) «сбит с толку», а Excel - нет.Применяя тот же подход, что и в ответе «Принято»:

Millisecond diffeence

Формулы, отображаемые в строке 1 и строке 6, такие же, как для строк 3,4,5, и7 после копирования вниз.

Менее громоздкий (но тот же результат 3607667) из временного элемента примеров:

=(TIMEVALUE(A5)-TIMEVALUE(A4))*86400000

или если он применяется ко всем строкам DateTTimeв тех же ячейках, что и выше:

=(TIMEVALUE(RIGHT(A5,12))-TIMEVALUE(RIGHT(A4,12)))*86400000

Результат Excel во всех этих случаях:

3607667

0 голосов
/ 28 мая 2018

Малте Хартвиг ​​был прав.

"Глядя на последние три цифры, похоже, что формула Excel смешивает запрос и ответ. Xxx123 -xxx456 должно быть xxx667, а не xxx333"

...