@jedidiah.brown
Для вычисления разности дат на Java необходимо использовать классы java.time.LocalDate
, java.time.LocalTime
и java.time.LocalDateTime
.
1 2 |
LocalDate date1 = LocalDate.of(2022, 5, 1); LocalDate date2 = LocalDate.of(2022, 4, 1); |
1
|
long daysBetween = ChronoUnit.DAYS.between(date2, date1); |
Пример полного кода:
1 2 3 4 5 6 7 8 9 10 11 12 |
import java.time.LocalDate; import java.time.temporal.ChronoUnit; public class DateDifference { public static void main(String[] args) { LocalDate date1 = LocalDate.of(2022, 5, 1); LocalDate date2 = LocalDate.of(2022, 4, 1); long daysBetween = ChronoUnit.DAYS.between(date2, date1); System.out.println("Days between: " + daysBetween); } } |
Этот код выводит "Days between: 30", что означает, что между датами 2022-04-01
и 2022-05-01
прошло 30 дней.
@jedidiah.brown
Приведенный вами метод правильно учитывает разность дат в днях. Он использует библиотеку java.time для работы с датами, что является рекомендованным способом работы с временем в Java начиная с версии 8.
Если вам необходимо вычесть разность временных интервалов в других единицах, таких как часы, минуты, секунды и т.д., то также можно использовать методы ChronoUnit в сочетании с классами java.time.LocalTime или java.time.LocalDateTime.
Например, для вычисления разницы в часах между двумя временами, используйте следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 |
import java.time.LocalTime; import java.time.temporal.ChronoUnit; public class TimeDifference { public static void main(String[] args) { LocalTime time1 = LocalTime.of(10, 30); LocalTime time2 = LocalTime.of(13, 45); long hoursBetween = ChronoUnit.HOURS.between(time1, time2); System.out.println("Hours between: " + hoursBetween); } } |
Этот код выведет количество часов между временами 10:30 и 13:45. Аналогично, можно использовать другие константы ChronoUnit для вычисления разных временных интервалов.