Time/JavaAPI - вычисление остатка двух дат

100
30 июня 2021, 07:20

Как вычислить остаток между двумя датами, что бы их можно было выводить в таком формате:

Ivanov Ivan (Java Developer) - Обучение не закончено. До окончания осталось 1 д 6 ч.
Petrov Petr (J2EE Developer) - Обучение закончено. После окончания прошло 3 ч. 3 

Мне только интересно вот эти данные "1д. 6ч." и "3ч."

Answer 1

Используйте Duration:

В Java 8 есть только методы toDays/Hours/Minutes, число, которое они возвращают - это полное число дней/часов/минут в разнице, т.е. при разнице между датами 36 часов метод toHours вернет вам 36, а вы наверное хотите 12, потому из 36 можно отдельно выделить целые сутки, соответственно нужно делать как-то так:

Duration duration = Duration.between(startLocalDateTime, endLocalDateTime);
long days = duration.toDays();
long hours = duration.toHours() % 24L;
long minutes = duration.toMinutes() % (24L * 60L);
System.out.println((days != 0 ? days + " д. " : "") +
                   (hours != 0 ? hours + " ч. " : "") +
                   (minutes != 0 ? minutes + " м. " : ""));

В Java >= 9 появились методы toDaysPart/HoursPart/MinutesPart, в случае разницы в 36 часов toHours вернет вам как раз 12, получится немного проще:

Duration duration = Duration.between(startLocalDateTime, endLocalDateTime);
long days = duration.toDaysPart();
long hours = duration.toHoursPart();
long minutes = duration.toMinutesPart();
System.out.println((days != 0 ? days + " д. " : "") +
                   (hours != 0 ? hours + " ч. " : "") +
                   (minutes != 0 ? minutes + " м. " : ""));
READ ALSO
Круглый прогресс-бар с эффектом движения воды

Круглый прогресс-бар с эффектом движения воды

Кто знает как можно реализовать такой круглый прогресс-бар с эффектом воды как в центральной части этого сайта https://asmobiusco

113
JSON в массив JS

JSON в массив JS

Имеется такой JSON:

84
Как сделать интерактивное расписание?

Как сделать интерактивное расписание?

Как сделать так что бы отображался только один день недели, и по нажатию менялся на другой? код

84
Видимость function declaration

Видимость function declaration

Функция объявленная как "function declaration" создаётся еще до выполнения кода, на стадии инициализацииЭто относится и к функциям в глобальном объекте...

99