Как вычислить остаток между двумя датами, что бы их можно было выводить в таком формате:
Ivanov Ivan (Java Developer) - Обучение не закончено. До окончания осталось 1 д 6 ч.
Petrov Petr (J2EE Developer) - Обучение закончено. После окончания прошло 3 ч. 3
Мне только интересно вот эти данные "1д. 6ч.
" и "3ч.
"
Используйте 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 + " м. " : ""));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Кто знает как можно реализовать такой круглый прогресс-бар с эффектом воды как в центральной части этого сайта https://asmobiusco
Как сделать так что бы отображался только один день недели, и по нажатию менялся на другой? код
Функция объявленная как "function declaration" создаётся еще до выполнения кода, на стадии инициализацииЭто относится и к функциям в глобальном объекте...