Примеры проверки високосного года на Java

Научитесь проверять, является ли данный год високосным или нет, используя различные классы даты и времени Java. В Java поиск високосных лет подразумевает логический подход, и разработчики могут использовать встроенные классы для эффективных решений.

Високосный год происходит каждые четыре года, с небольшим отклонением. Годы, делящиеся на 100, не являются високосными, если только они не делятся на 400. Это правило тонко настраивает выравнивание календаря, чтобы учесть дополнительные 0,2422 дня на орбите Земли.

1. Проверка високосного года с помощью API Java 8

В Java 8 появился пакет java.time и следующие классы(и методы), которые могут помочь определить, является ли данный год високосным или нет.

Мы можем использовать метод now() для получения текущего экземпляра даты/времени, который поможет проверить, является ли текущий год високосным.

LocalDate ldt = LocalDate.now();boolean isLeapYear = ldt.isLeapYear();//orboolean isLeapYear = Year.now().isLeap();boolean isLeapYear = Year.of(2024).isLeap();

2. Поиск високосного года до Java 7

В устаревших API Java основными классами для обработки даты и времени были Date, Calendar и GregorianCalendar. Для определения високосного года у нас есть два подхода:

Независимо от того, какой подход мы используем, мы должны извлечь значение года из любой заданной даты или календарного экземпляра, а затем использовать любой из этих методов.

Второй метод использует определение високосного года напрямую, проверяя делимость на 4 и неделимость на 100(если только не делится на 400) для определения високосного года.

// 1public static boolean isLeapYearUsingGregorianCalendar(int year) {GregorianCalendar calendar = new GregorianCalendar();return calendar.isLeapYear(year);}// 2public static boolean isLeapYear(int year) {if((year % 4 == 0 && year % 100 != 0) ||(year % 400 == 0)) {return true;} else {return false;}}

3. Заключение

В Java поиск високосных лет необходим в ряде случаев использования, таких как проверка дат для обеспечения точного и надежного ввода данных или расчета процентов, погашения кредитов и других финансовых операций, требующих точного измерения времени.

Независимо от того, используют ли разработчики класс GregorianCalendar, современный класс java.time.Year или простой алгоритмический подход, у них есть различные варианты определения того, является ли данный год високосным или нет.

Прокрутить вверх