isAfter isBefore Java 8 LocalDateTime один день другой
Я хочу сравнить две даты с сегодняшней датой. Есть ли после и прежде лучшее для этого? isAfter и isBefore не могут обнаружить изменения одного дня. Скажем:
If today is 20 Nov. I put in range 20 Nov-21 Nov.
if(todayDate.isAfter(startDate) && todayDate.isBefore(endDate))
{
// task
}
Этот код не обнаружит, что сегодня находится в диапазоне. Или / || не применимо, потому что у меня есть набор диапазона для тестирования. Есть идеи по этому поводу?
1 ответ:
Это решит проблему: просто добавьте проверку на то, является ли сегодняшняя дата начальной или конечной датой, которую вам придется реализовать самостоятельно
if( (todayDate.isAfter(startDate) && todayDate.isBefore(endDate) ) || (todayDate.isEqual(startDate) || todayDate.isEqual(endDate) ) { // task }Это потому, что
isAfterиisBeforeоба строгие.Edit: лучшее более логичное решение:
if(!todayDate.isAfter(endDate) && !todayDate.isBefore(startDate)) { // task }Отрицая
isAfter, он становится endDate или раньше.Отрицая
isBefore, он становится startDate или после.
Comments