Високосный ли год?

Функция определяет, високосный ли год по григорианскому календарю (полное правило). Платформа "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)
        ;
    ;    
;
1

Комментарии

Radchin
#1, ред. 11 декабря 2025 05:39

С точки зрения стандартной библиотеки 1С:Предприятие.Элемент Скрипт, предлагаю более изящное решение для данной задачи

метод Скрипт()

    пер Результат = ЭтотГодВисокосный_1(Год = 2023)  // Ложь    
    
    Консоль.Записать("$Результат")
		

    Результат = ЭтотГодВисокосный_2(Год = 2024)  // Истина    
    
    Консоль.Записать("$Результат")
;

//////////////////////////////////////////////////////////
метод ЭтотГодВисокосный_1(Год: Число): Булево
    
    знч ПоследнийДеньФевраля = новый Дата(Год, 2, 1).КонецМесяца()
		                                            .День
    возврат ПоследнийДеньФевраля == 29
;

//////////////////////////////////////////////////////////
метод ЭтотГодВисокосный_2(Год: Число): Булево
    
    знч ПоследнийДеньГода = новый Дата(Год, 12, 31).ДеньГода()
    возврат ПоследнийДеньГода == 366
;


См. также

Високосный ли год?

Просклонять число лет

Функция ВремяГода(мес)

СоздатьВТДанныеГрафика (БСП)

УстановитьНачальнуюДатуЗапретаИзменения (БСП)

ПроверитьКорректностьКурсаНа01_01_1980 (БСП)

Модератору