Я пытаюсь определить, наступает ли определенное местное время до полуночи. В основном я хочу знать, переносится ли время начала/окончания смены на следующий день. Например, если смена была запланирована на 23:00–07:00, то это будет считаться переходом на следующий день, поскольку время окончания — после полуночи, а время начала — раньше.
Я начал реализовывать это, проверяя, наступает ли время начала до полуночи, и проверяя, наступает ли время окончания после полуночи. Это соответствует критериям перекрытия следующего дня.
В Java мой код выглядит так
Код: Выделить всё
public boolean checkTime() {
final LocalTime startTime = LocalTime.parse("23:00");
final LocalTime endTime = LocalTime.parse("07:00");
return startTime.isBefore(LocalTime.MIDNIGHT) //false
&& endTime.isAfter(LocalTime.MIDNIGHT)) //true;
}
Почему он возвращает false, если время начала не ранее полуночи? Разве время 23:00 не за час до полуночи? Я ожидаю, что это вернет истину. Может я чего-то не понимаю? Я работаю с LocalTimes и не использую LocalDateTimes
Подробнее:
https://stackoverflow.com/questions/762 ... e-midnight