Приведенный ниже пример показывает возможность скрыть от глаз большой код в отдельный файл.
Перед нами стоит задача вычислить текущую дату используя системную переменную $_time_t.
Для этих целей была написана подпрограмма, которая для удобства вынесена в отдельный файл date.cms
date.cms
SUB(UPDATE_DATE) $_date_y = 1970 $_date_m = 1 $_date_d = ROUND(($_time_t / (3600 * 24)) - $voi, 0) + 1//floor $voi = 0.499999999999 $break = 0 WHILE($break = 0) $arg1 = $_date_y-1968 $arg2 = 4 IF($arg1-(ROUND(($arg1/$arg2)-$voi,0)*$arg2) = 0)//mod($_date_y-1968, 4) = 0 $nd = 366 ELSE $nd = 365 END_IF if($_date_d > $nd) INC($_date_d, 0-$nd) INC($_date_y, 1) ELSE $break = 1 END_IF END_CYC $break = 0 WHILE($break = 0) $arg1 = $_date_y-1968 $arg2 = 4 IF( ($arg1-(ROUND(($arg1/$arg2)-$voi,0)*$arg2) = 0) & ($_date_m = 2) )//(mod($_date_y-1968, 4) = 0) & ($_date_m = 2) $nd = 29 ELSE $nd = STRCUT("31,28,31,30,31,30,31,31,30,31,30,31", (($_date_m-1) * 3) + 1, 2) END_IF IF($_date_d > $nd) INC($_date_d, 0-$nd) INC($_date_m, 1) ELSE $break = 1 END_IF END_CYC END_SUB GOSUB(UPDATE_DATE)
После вызова эта подпрограмма создает следующие переменные, которые могут использоваться в вашей программе
- $_date_d – День
- $_date_m – Месяц
- $_date_y – Год
Пример использования
// Подключаем файл с подпрограммой UPDATE_DATE. Это работает так, как если просто скопировать все содержимое файла date.cms на место этой строки #include "date.cms"print($_date_d,".",$_date_m,".",$_date_y) // Выводим первый вариант даты GOSUB(UPDATE_DATE) // Вызов подпрограммы (ее тело находится в подключенном файле date.cms) и обновление переменных print($_date_d,".",$_date_m,".",$_date_y) // Выводим актуальную дату HALT
Комментарии: