ГОСТ Р ИСО 10303-41—2022
Определение параметра:
duration — (входной) проверяемый объект time_measure_with_unit, представляющий меру вре
мени с единицей измерения.
10.5.5 Функция leap_year
Функция leap_year проверяет, содержит ли конкретный год 366 дней, а не 365. Такой год называ
ется високосным.
Примечание — Високосный год наступает каждые четыре года.
EXPRESS-специФикаиия:
*)
FUNCTION leap_year (year :year_number) :BOOLEAN;
IF ((((year MOD 4) = 0) AND ((year MOD 100) <> 0)) OR ((year MOD 400) = 0)) THEN
RETURN (TRUE);
ELSE
RETURN (FALSE);
END_IF;
END_FUNCTION;
(*
Определение параметров:
year — число целого типа, представляющее год по григорианскому календарю.
10.5.6 Функция valid_calendar_date
Функция valid_calendar_date проверяет, образуют ли составные части даты, представленной
объектом, допустимую дату. Если дата допустима, функция возвращает значение TRUE (истина), в про
тивном случае функция возвращает значение FALSE (ложь).
EXPRESS-специФикация:
*)
FUNCTION valid_calendar_date (date :calendar_date) :LOGICAL;
CASE date.month_component OF
1 :RETURN({ 1 <= date.day_component <=31 });
2 :BEGIN
IF (leap_year(date.year_component)) THEN
1 <= date.day_component <= 29 });
RETURN({
ELSE
RETURN({
1 <= date.day_component <= 28 });
date.day
date.day
date.day
date.day
date.day
date.day
date.day
date.day
date.day
date.day
component <= 31
})
component <= 30
})
component <= 31
})
component <= 30
})
component <= 31
})
component <= 31
})
component <= 30
})
component <= 31
})
component <= 30
})
component <= 31
})
END_IF;
END;
3 RETURN({ 1 <=
4 RETURN({ 1 <=
5 RETURN({ 1 <=
6 RETURN({ 1 <=
7 RETURN({ 1 <=
8 RETURN({ 1 <=
9 RETURN({ 1 <=
10 RETURN({ 1 <=
11 RETURN({ 1 <=
12 RETURN({ 1 <=
END_CASE;
RETURN (FALSE);
END_FUNCTION;
(*
Определение параметра:
date — (входной) проверяемый на допустимость экземпляр представляющего календарную дату
объекта calendar date.
65