Довольно часто разработчики сталкиваются с необходимостью сравнить даты в Java. Например, нужно проверить, входит ли текущая дата в определенный интервал. Представим, что есть три даты:
- date1 — 22-02-2010
- date2 — 07-04-2010 (текущая дата)
- date3 — 25-12-2010
И задача состоит в том, чтобы определить, находится ли date2 (сегодняшняя дата) между date1 и date3.
Для сравнения дат в Java есть несколько способов.
Разработка на Java — востребованное направление, такие специалисты будут нужны на рынке еще долго. На курсе «Java-разработчик» от Skypro освоить профессию можно с нуля за 11 месяцев, даже если вы гуманитарий и ничего не знаете об IT. Программа составлена от простого к сложному и адаптирована для новичков. Преподаватели — практикующие специалисты из крупных компаний: «Сбер», «Самокат» и других.
Использование метода compareTo()
В Java класс Date
реализует интерфейс Comparable
, который предоставляет метод compareTo()
. Этот метод сравнивает текущий объект с указанным объектом.
Если текущая дата меньше, чем сравниваемая дата, то метод compareTo()
вернет число меньше нуля. Если даты равны, то вернет ноль. Если текущая дата больше, чем сравниваемая дата, то вернет число больше нуля.
Пример кода:
Date date1 = new SimpleDateFormat("dd-MM-yyyy").parse("22-02-2010"); Date date2 = new SimpleDateFormat("dd-MM-yyyy").parse("07-04-2010"); Date date3 = new SimpleDateFormat("dd-MM-yyyy").parse("25-12-2010"); if (date2.after(date1) && date2.before(date3)) { System.out.println("Date2 is between date1 and date3"); } else { System.out.println("Date2 is not between date1 and date3"); }
Использование методов after() и before()
Еще одним способом сравнения дат в Java является использование методов after()
и before()
класса Date
. Эти методы возвращают true
или false
в зависимости от того, находится ли дата до или после указанной даты.
Пример кода:
Date date1 = new SimpleDateFormat("dd-MM-yyyy").parse("22-02-2010"); Date date2 = new SimpleDateFormat("dd-MM-yyyy").parse("07-04-2010"); Date date3 = new SimpleDateFormat("dd-MM-yyyy").parse("25-12-2010"); if (date2.after(date1) && date2.before(date3)) { System.out.println("Date2 is between date1 and date3"); } else { System.out.println("Date2 is not between date1 and date3"); }
Освойте Java на курсе онлайн-университета Skypro. Учебе нужно будет уделять всего 10 часов в неделю: сможете совмещать с работой и личными делами. Вас ждут 440 часов теории и практики, мастер-классы с реальными рабочими задачами, опытные преподаватели, кураторы и наставники. За время обучения сделаете два полноценных проекта для портфолио и множество домашних заданий, чтобы отработать навыки.
Использование класса LocalDate
С началом Java 8 была введена новая дата и время API. Класс LocalDate
предоставляет методы isBefore()
, isAfter()
и isEqual()
для сравнения дат.
Пример кода:
LocalDate date1 = LocalDate.parse("2010-02-22"); LocalDate date2 = LocalDate.parse("2010-04-07"); LocalDate date3 = LocalDate.parse("2010-12-25"); if (date2.isAfter(date1) && date2.isBefore(date3)) { System.out.println("Date2 is between date1 and date3"); } else { System.out.println("Date2 is not between date1 and date3"); }
Все три приведенных способа позволяют сравнить даты в Java и определить, находится ли одна дата между двумя другими.
Добавить комментарий