Описание тега leap-year
Високосный год (или вставочный или бисекстильный год) - это год, содержащий один дополнительный день для того, чтобы календарный год синхронизировался с астрономическим или сезонным годом.
Поскольку сезоны и астрономические события не повторяются в течение целого числа дней, календари, которые имеют одинаковое количество дней в каждом году, с течением времени смещаются по отношению к событию, которое год должен отслеживать. Вставив (или вставив) дополнительный день или месяц в год, можно исправить дрейф. Год, не являющийся високосным, называется обычным годом.
Больше о високосных годах в целом можно найти в Википедии здесь.
В вычислениях мы обычно имеем в виду григорианский календарь, который добавляет в високосный год дополнительный день 29 февраля. Високосный год - это год, который удовлетворяет обоим следующим критериям:
- Он делится на 4 без остатка.
- Оно не делится на 100 без остатка, если оно не делится на 400 без остатка.
Типичная реализация этого алгоритма:
bool isLeapYear = year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
Ошибки високосного года
Високосные годы могут создавать ошибки в программном обеспечении. Это описано в следующем посте: