Нахождение високосных лет в Java
В этом руководстве мы покажем несколько способов определить, является ли данный год високосным в Java.
Високосный год – это год, который делится на 4 и 400 без остатка . Таким образом, годы, которые делятся на 100, но не делятся на 400, не подходят, даже если они делятся на 4.
2. Использование API календаря до Java-8
Начиная с Java 1.1, класс GregorianCalendar позволяет нам проверять, является ли год високосным:
Как и следовало ожидать, этот метод возвращает значение true , если данный год является високосным, и значение false , если год не является високосным .
Годы до нашей эры (до Рождества Христова) должны передаваться как отрицательные значения и рассчитываются как 1 – год . Например, 3 год до н.э. представлен как -2, поскольку 1 – 3 = -2.
3. Использование API даты/времени Java 8+
Java 8 представила java . time с гораздо лучшим API даты и времени .
Класс Year в java . time имеет статический метод для проверки того, является ли данный год високосным:
И у него также есть метод экземпляра, чтобы сделать то же самое:
4. Использование API Joda-Time
Joda -Time API — одна из наиболее часто используемых сторонних библиотек среди проектов Java для утилит даты и времени. Начиная с Java 8, эта библиотека находится в поддерживаемом состоянии , как указано в исходном репозитории Joda-Time GitHub .
Не существует предопределенного API-метода для поиска високосного года в Joda-Time. Однако мы можем использовать их классы LocalDate и Days для проверки високосного года:
5. Вывод
В этом руководстве мы увидели, что такое високосный год, логику его поиска и несколько API-интерфейсов Java, которые мы можем использовать для его проверки.
Name already in use
java-homeworks / conditional-statements-cycles / 1.3.1 / README.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Задача 1. Високосный год
Нужно написать программу, которая будет рассчитывать количество дней в году. Зачем это бывает нужно? Варианты бывают разные: например, для расчета продолжительности долгосрочных проектов в днях или чтобы узнать, сколько дней потребуется для космической экспедиции на Марс. Для расчета количества дней в году требуется знать несколько правил:
- В високосном году 366 дней, в обычном 365.
- Високосный год — это год, номер которого делится без остатка на 400 (например 2000 или 2400), либо делится на 4 но не делится на 100 (например 2008, 2096, но не 2100).
- Вывод сообщения в консоли Введите год в формате «yyyy» .
- Ввод года в формате yyyy (например 2004).
- Чтение значения из консоли и расчет количества дней.
- Результат работы программы: напечатать в консоли количество дней в году Количество дней 365 или Количество дней 366 .
- Создадим новый repl на сайте repl.it, как написано в инструкции к выполнению домашней работы, и зададим название homework1.1.1 .
- В файле Main.java написан следующий код:
Весь код выполнения задачи нужно писать вместо System.out.println(«Hello world!»); .
Выведем сообщение Введите год в формате «yyyy» пользователю
Чтобы читать сообщения из консоли воспользуемся специальным объектом Scanner (на следующих лекциях мы подробнее познакомимся с термином объект), описание Scanner (как ниже) делается только один раз на всю программу.
- Для того чтобы была возможность в коде использовать класс Scanner , нужно обязательно добавить import этого класса в самое начало файла Main.java :
- Чтобы прочитать введенное целое число из консоли, нужно использовать scanner.nextInt() . А чтобы прочитать и сохранить введенное значение в программе для дальнейшего использования, нужно написать:
Как проверить, високосный ли год? Для этого сначала надо проверить делимость на 400, используя year % 400 == 0 . Специальный оператор % — возвращает остаток от деления. Результат вычисления будет равен 0, только если число делится нацело, иначе вернется остаток от деления. Если год делится на 400 без остатка, значит в нем точно 366 дней. Если нет, то — аналогично проверить делимость на 100: если год делится на 100, то в нем точно 365 дней. И наконец, если год не делится ни на 400, ни на 100, то проверяем делимость на 4: если делится, — то — 366 дней, иначе — 365.
Чтобы последовательно проверить делимость введенного числа, нужно воспользоваться оператором сравнения if else .
Как вычислить, является ли год високосным в Java
При работе с датами в Java может быть полезно вычислить, является ли год високосным или нет.
Високосный год – это год, состоящий из 366 дней вместо 365.
Високосный (или високосный) год выпадает каждые четыре года, чтобы компенсировать неточность традиционного календаря: вращение земли вокруг солнца, на самом деле, длится не ровно 365 дней, а примерно 365 дней и 6 часов, и по этой причине в 1584 году было решено добавлять один день каждые 4 года, чтобы компенсировать отставание, накопленное за предыдущие три года.
Как узнать, является ли год високосным или нет?
На самом деле для ответа на этот вопрос достаточно небольшого математического расчета.
Давайте рассмотрим простую функцию Java, которая позволяет определить, является ли год високосным или нет:
Как видно из предложенного кода, чтобы определить, является ли год високосным, достаточно проверить ряд условий:
Java-программа для поиска високосного года
В этой статье показано, как с помощью программы на Java можно проверить, является ли введенный год високосным или нет. Хотя задача на первый взгляд кажется довольно простой, вычисления немного сложны. Мы можем легко предположить, что все високосные годы кратны 4. То есть, если конкретный год делится на 4 без остатка, то год является високосным. Однако это наивная реализация программы високосного года. Год также может быть високосным, если выполняются следующие условия:
- Год считается високосным, если он делится на 100.
- Если конкретный год делится на 100, то он также должен делиться на 400.
- Помимо двух условий, указанных выше, если какой-либо другой год делится на 4, этот год также обязательно является високосным.
Алгоритм
- Start
- Инициализируйте целочисленную переменную с именем year. Эта переменная определяет, является ли год високосным или нет.
- Если условие проверяет, делится ли переменная на 4, но не на 100. Если условие истинно, в консоль выводится «високосный год».
- Если год делится на 400, то в консоль снова выводится «високосный год».
- Для всех остальных случаев, кроме определенных выше, выведите «не високосный год».
Пример кода для реализации проблемы високосного года
ВЫХОД 1:
Введите год:: 2020
Указанный год является високосным
ВЫХОД 2:
Введите год:: 2017
Указанный год не является високосным
Автор

Full Stack Developer с более чем 10-летним опытом создания технического контента.