1С 8.3 Високосный ли год?
Данные > Примеры кода 1С > 1С 8.3 Дата и время
Перейти в основной раздел:

Високосный год — это календарный год, в котором 366 дней, а не 365, как обычно. Дополнительный день добавляется в феврале — 29 февраля вместо 28. Високосным годом является каждый четвёртый год. Однако есть исключения: годы, кратные 100, но не кратные 400. Например, 1900 год не был високосным, а 2000 — был. В 1С определение високосного года можно осуществить с помощью встроенного функционала или написания кода. Для этого необходимо использовать функцию, которая проверяет, делится ли год на 4 без остатка. Если делится, то год високосный.
Определение високосного года в 1С 8.3:
Функция ВисокосныйГод(ВхГод) Экспорт // 2024
Если ВхГод % 400 = 0 Тогда
Возврат Истина;
ИначеЕсли ВхГод % 100 = 0 Тогда
Возврат Ложь;
ИначеЕсли ВхГод % 4 = 0 Тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
Если ВхГод % 400 = 0 Тогда
Возврат Истина;
ИначеЕсли ВхГод % 100 = 0 Тогда
Возврат Ложь;
ИначеЕсли ВхГод % 4 = 0 Тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
Определение високосного года в 1С 8.3:
Функция ВисокосныйГод1(ВхДатаНапримерТекущая) Экспорт // Дата("20240218")
КоличествоДней = ДеньГода(КонецГода(ВхДатаНапримерТекущая));
ВисокосныйГод = ?(КоличествоДней = 366, Истина, Ложь);
Возврат ВисокосныйГод;
КонецФункции
Определение високосного года в 1С 8.3:
Функция ВисокосныйГод2(ВхДатаФевраля) Экспорт // Дата("20240218")
Возврат ?(День(КонецМесяца(ВхДатаФевраля)) = 29, Истина, Ложь);
КонецФункции
Возврат ?(День(КонецМесяца(ВхДатаФевраля)) = 29, Истина, Ложь);
КонецФункции
Определение високосного года в 1C:Предприятие.Элемент Скрипт:
method Leap(year:Number):Boolean
case
True when year % 400 == 0 return
True when year % 100 == 0 return
False when year % 4 == 0 return
True else return False ; ;
// пример использования
method Script()
for y = 1900 to 2100
if Leap(y)
Console.Write(y) ; ; ;
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник