Проверить что после введенной даты далее идут даты подряд из введенного списка
У меня есть метод который принимает список выходных и дату и проверяет идут ли после этой даты подряд выходные из переданного списка. Метод отрабатывает хорошо когда я ввожу первый день который является праздником и после него тоже идут праздники. Однако когда я ввожу день который не является праздником,но после него идут праздники метод не отрабатывает никак.
К примеру в листе со списком выходных лежат следующие даты :
('2023-01-01')
('2023-01-02')
('2023-01-03')
('2023-01-04')
('2023-01-05')
('2023-01-06')
('2023-01-07')
('2023-01-08')
При вводе 2023-01-01 метод отрабатывает верно. Однако если рассмотреть пример в котором в список праздников приходит:
('2023-02-22')
('2023-02-23')
('2023-02-24')
То при вводе 2023-02-21 метод не отрабатывает. В чем моя проблема? Как можно подкорректировать код?
Мой метод:
private void resultWeekend(LocalDate inputDate,, List<LocalDate> allHolidays) {
int inputIndex = allHolidays.indexOf(inputDate);
if (inputIndex == -1) {
System.out.println("Введенной даты нет в списке");
}
for (int i = inputIndex + 1; i < allHolidays.size(); i++) {
LocalDate currentDate = allHolidays.get(i);
if (currentDate.equals(inputDate.plusDays(i - inputIndex))) {
System.out.println("Следующая дата после " + inputDate + " - " + currentDate);
} else {
break;
}
}
}
ДОПОЛНЕНИЕ 1
В allHolidays лежат не только даты из примеров выше,этот лист содержит около сотни дат в отсортированном по дате порядке. Я ожидаю что при вводе даты,которая не содержится в листе будет произведена проверка что после нее (дата + 1 день) могут содержаться даты которые в этом листе есть