Как определить високосный год в 1с

Обновлено: 05.07.2024

Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.

Аннотация

В этой статье описывается, как определить, является ли год в дате, используемой в документе Microsoft Excel, високосным.

Дополнительная информация

Система дат, используемая Excel, основана на григорианском календаре, впервые установленном в 1582 году папой римским Григорием XIII. Этот календарь был разработан для исправления ошибок, привнесенных менее точным юлианским календарем.

В григорианском календаре обычный год состоит из 365 дней. Поскольку фактическая продолжительность звездного года (период обращения Земли вокруг Солнца) составляет 365.2425 дней, «високосный год» в 366 дней используется один раз каждые четыре года для устранения ошибки, вызванной тремя обычными ( но короткими) годами. Любой год, который делится на 4 без остатка, является високосным годом: например, 1988, 1992 и 1996 годы являются високосными годами.

Тем не менее, есть еще небольшая ошибка, которая должна быть учтена. Чтобы устранить эту ошибку, григорианский календарь предусматривает, что год, который делится без остатка на 100 (например, 1900) является високосным годом только в том случае, если он также без остатка делится на 400.

По этой причине следующие годы не являются високосными:

1700, 1800, 1900, 2100, 2200, 2300, 2500, 2600

Это потому, что они делятся без остатка на 100, но не на 400.

Следующие годы – високосные: 1600, 2000, 2400

Это потому, что они делятся без остатка на 100 и 400.

Поскольку версии Microsoft Excel, более ранние, чем Excel 97, обрабатывают только годы с 1900 по 2078 год, только для 1900 года действует правило исключения 100/400 високосных лет в Microsoft Excel. Однако для совместимости с другими программами Microsoft Excel рассматривает 1900 год как високосный.

Как определить, является ли год високосным

Чтобы определить, является ли год високосным, выполните следующие действия:

  1. Если год делится на 4 без остатка, перейдите на шаг 2. В противном случае перейдите к выполнению действия 5.
  2. Если год делится на 100 без остатка, перейдите на шаг 3. В противном случае перейдите к выполнению действия 4.
  3. Если год делится на 400 без остатка, перейдите на шаг 4. В противном случае перейдите к выполнению действия 5.
  4. Год високосный (366 дней).
  5. Год не високосный год (365 дней).

Формула, чтобы определить, является ли год високосным

Используйте следующую формулу, чтобы определить, является ли номер года, который вводится в ячейку (в данном примере, ячейка A1), високосным годом:

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

Желаю, чтобы в конце каждого года ты, вспоминая то, что было за последние 366 if ((year%4 == 0 and year%100 != 0) or (year%400 == 0)) else 365 дней, думал про себя:

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

Итак, выше достаточно простой inline-способ определить количество дней в году (переменная year), который, по сути, полностью раскрывает их суть: в григорианском календаре високосными годами считаются те годы, порядковый номер которых либо кратен 4, но при этом не кратен 100, либо кратен 400. Иными словами, если год делится на 4 без остатка, но делится на 100 только с остатком, то он високосный, иначе — невисокосный, кроме случая, если он делится без остатка на 400 — тогда он всё равно високосный.

Например, 2013 год невисокосный, 1700, 1800 и 1900 — опять же невисокосные годы, а вот 2000, 2004, 2008 и 2012 — високосные.

Но что, если мы не помним, сколько дней в високосных (366 дней) и невисокосных (365 дней) годах, или просто хотим написать определение количества дней в году максимально быстро? Можно ли сделать так на Python? Конечно же, можно.

Итак, в Python есть модуль calendar. Он как раз отлично подходит для того, чтобы узнать, является ли тот или иной год високосным (или, например, сколько високосных годов в определённом интервале), определить количество дней в месяце, получить номер дня недели для определённой даты и так далее.

В частности, мы можем получить количество дней в каждом месяце года, и просто сложить.

Функция calendar.monthrange принимает номер года в качестве первого аргумента и номер месяца в качестве второго аргумента. Возвращает номер дня недели первого числа данного месяца и количество дней в данном месяце:


Соответственно, мы можем подсчитать общее количество дней для всех 12 месяцев, и получить таким образом количество дней для данного года:


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

Проверяем с помощью модуля timeit.

На то, чтобы выполнить её 1 миллион раз, требуется 13.69 секунд, если import calendar делается один раз в начале. Если import calendar делается каждый раз, тогда 14.49 секунд.

Теперь попробуем другой вариант. Он требует знания того, сколько дней в високосных и невисокосных годах, но зато он очень короткий:


И, как легко догадаться, он уже намного быстрее: 0.83 секунд, включая import calendar, и 0.26 секунд, если import calendar делается один раз в начале.

Давайте также посмотрим, сколько требуется времени самому первому варианту, с «ручным» подходом: 0.07 секунд для 2012 и 2013 и 0.12 секунд для 2000 (думаю, всем понятно, откуда берётся такая разница в скорости для этих годов).

Получается, что это и есть самый быстрый вариант из этих трёх:


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

Пишите, оптимизируйте, улучшайте, тестируйте и считайте производительность — но не забывайте о читаемости исходников ваших программ.

С Новым годом! Удачи, счастья, радости и самосовершенствования в новом году.

Определить, является ли год, который ввел пользователем, високосным или невисокосным.

Високосные года делятся нацело на 4. Однако из этого правила есть исключение: столетия, которые не делятся нацело на 400, високосными не являются.

В високосном годе 366 дней, в обычном 365.

  1. Если год не делится на 4, значит он обычный.
  2. Иначе надо проверить не делится ли год на 100.
  3. Если не делится, значит это не столетие и можно сделать вывод, что год високосный.
  4. Если делится на 100, значит это столетие и его следует проверить его делимость на 400.
  5. Если год делится на 400, то он високосный.
  6. Иначе год обычный.

Pascal

високосный год паскаль

Язык Си

Python

високосный год python(питон)

КуМир

Basic-256


високосный год паскаль

var y: word;
begin
readln(y);
if y mod 4 0 then writeln('Обычный')
else
if y mod 100 = 0 then
if y mod 400 = 0 then writeln('Високосный')
else writeln('Обычный')
else writeln('Високосный');
end.

var y: word;
begin
readln(y);
if (y mod 4 0) or (y mod 100 = 0) and (y mod 400 0) then
writeln('Обычный')
else
writeln('Високосный');
end.

високосный год python(питон)

y = int(input())
if y % 4 != 0:
print("Обычный")
elif y % 100 == 0:
if y % 400 == 0:
print("Високосный")
else:
print("Обычный")
else:
print("Високосный")

if y % 4 != 0 or (y % 100 == 0 and y % 400 != 0):
print("Обычный")
else:
print("Високосный")

алг високосный год
нач
цел n
ввод n
если mod(n,4) 0 то
вывод "Обычный год"
иначе
если mod(n,100) = 0 то
если mod(n,400) = 0 то
вывод "Високосный год"
иначе
вывод "Обычный год"
все
иначе
вывод "Високосный год"
все
все
кон

алг високосный год
нач
цел n
ввод n
если mod(n,4) 0 или mod(n,100) = 0 и mod(n,400) 0 то
вывод "Обычный год"
иначе
вывод "Високосный год"
все
кон

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь


Проверить, является ли заданный год високосным и вывести следующий високосный год
В первую строку выведите YES, если данный год является високосным и NO, если не является. Во второй.

Проверить, является ли год високосным
Написать программу, которая проверяет, является ли год високосным (операторы if, else)

Проверка, является ли год високосным
Написать программу, которая проверяет является ли год високосным.( год является високосным, если.

Решение

не високосный год-не кратный 4 либо кратный 100 и не кратный 400

Пацаны та шо вы прям усложняеете отнимаем от года столетие ну например :
1984 - 1900 = 84
2008 - 2000 = 8

и делим на 4-ри и пипец, прикинте каждое столетие начинается с високосного
И никаких вам тяжеловесных проверок типа кратный 100 некратный 400.

Добавлено через 20 минут 27 секунд
А это по поводу супа и картошки, реально долго смеялся с этого задания)))))

Пацаны та шо вы прям усложняеете отнимаем от года столетие ну например :
1984 - 1900 = 84
2008 - 2000 = 8

и делим на 4-ри и пипец, прикинте каждое столетие начинается с високосного
И никаких вам тяжеловесных проверок типа кратный 100 некратный 400.

Пацаны та шо вы прям усложняеете отнимаем от года столетие ну например :
1984 - 1900 = 84
2008 - 2000 = 8

и делим на 4-ри и пипец, прикинте каждое столетие начинается с високосного
И никаких вам тяжеловесных проверок типа кратный 100 некратный 400.

Дружище 1900 високостный был. Проверь!

Добавлено через 3 минуты 40 секунд
Ах ты ж чьёрт внатуре 1900 не высокосный

Високосным (то есть в котором 366 дней за счет 29 февраля) годом являются год, номер которого делится без остатка на 4, кроме тех, числа
которых оканчиваются на два нуля, но не делятся на 400, поэтому, например, годы 1700, 1800, 1900 не являются високосными, а 2000 является.

В юлианском календаре, или по старому стилю, все годы, оканчивающиеся на нули, — високосные: 1700, 1800, 1900 и т.д. по григорианскому календарю, или новому стилю, високосными являются не все годы, оканчивающие столетия, а только те из них, две первые цифры которых делятся на 4. Таким образом, становятся високосными 1600-й, 2000-й, 2400-й. Годы 1700-й, 1800-й и 1900-й объявлялись простыми. Подобное новшество сокращало каждые 400 лет на три дня, приближая продолжительность календарного года к тропическому.

Читайте также: