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
}


Этот код не обнаружит, что сегодня находится в диапазоне. Или / || не применимо, потому что у меня есть набор диапазона для тестирования. Есть идеи по этому поводу?

680   1  

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

    Ничего не найдено.