В Java массив дат без года (день и месяц только) и сравнение даты с датами в массиве?

В Java можно использовать классы LocalDate и LocalDateTime для работы с датами без времени. LocalDate представляет дату без времени, а LocalDateTime представляет дату и время.

Чтобы создать объект LocalDate или LocalDateTime, необходимо указать год, месяц и день:

LocalDate date = LocalDate.of(2021, 12, 31);
LocalDateTime dateTime = LocalDateTime.of(2021, 12, 31, 23, 59, 59);

Если вам нужно работать с текущей датой, вы можете использовать метод now():

LocalDate currentDate = LocalDate.now();
LocalDateTime currentDateTime = LocalDateTime.now();

Для сравнения даты с датами в массиве вы можете использовать метод isEqual() для LocalDate или isEqual() и isAfter() и isBefore() для LocalDateTime. Например:

LocalDate[] dates = {LocalDate.of(2021, 1, 1), LocalDate.of(2021, 2, 1), LocalDate.of(2021, 3, 1)};

LocalDate targetDate = LocalDate.of(2021, 2, 1);

for (LocalDate date : dates) {
    if (date.isEqual(targetDate)) {
        System.out.println("Date found!");
        break;
    }
}

В этом примере мы создали массив dates, содержащий три LocalDate. Мы также создали targetDate, которую мы ищем в массиве. Затем мы проходимся по каждой дате в массиве и сравниваем ее с targetDate с помощью метода isEqual(). Если даты равны, мы выводим сообщение "Date found!" и выходим из цикла с помощью break.

То же самое можно сделать с LocalDateTime:

LocalDateTime[] dateTimes = {
    LocalDateTime.of(2021, 1, 1, 0, 0, 0),
    LocalDateTime.of(2021, 2, 1, 12, 0, 0),
    LocalDateTime.of(2021, 3, 1, 23, 59, 59)
};

LocalDateTime targetDateTime = LocalDateTime.of(2021, 2, 1, 12, 0, 0);

for (LocalDateTime dateTime : dateTimes) {
    if (dateTime.isEqual(targetDateTime)) {
        System.out.println("DateTime found!");
        break;
    }
}

В этом примере мы создали массив dateTimes, содержащий три LocalDateTime. Мы также создали targetDateTime, которую мы ищем в массиве. Затем мы проходимся по каждой дате и времени в массиве и сравниваем их с targetDateTime с помощью метода isEqual(). Если даты и времена равны, мы выводим сообщение "DateTime found!" и выходим из цикла с помощью break.

В заключение, Java предоставляет удобные классы для работы с датами без года, такими как LocalDate и LocalDateTime. С их помощью вы можете создавать объекты даты и сравнивать их с датами в массиве, используя методы isEqual(), isAfter() и isBefore().