Язык процедур 2-REXX для OS-2


TIME


Функция TIME по умолчанию в качестве результата возвращает текущее время в 24-часовом формате "чч:мм:сс" (часы, минуты, секунды); например: 04:41:37

Для получения других форматов вывода времени или для получения доступа к счетчику прошедшего времени Вы можете использовать следующие режимы (при указании которых значащими являются только заглавные буквы):



Civil Возвращает чч:ммxx, время в общепринятом формате, где чч может принимать значения от 1 до 12, а мм - от 00 до 59. Непосредственно за минутами следуют буквы "am" или "pm", чтобы отличить утреннее время (с полуночи 12:00am до 11:59am) от полуденного и послеполуденного времени (с полудня 12:00pm до 11:59pm). При отображении часа начальный ноль не добавляется. Для согласованности с прочими результатами функции TIME поле, отведенное для минут, содержит текущую минуту (а не ближайшую).
Elapsed     Возвращает ссссссссс.тт0000, количество секунд с сотыми долями секунды, прошедших с момента, когда счетчик прошедшего времени был запущен или сброшен (см. ниже). Возвращенное число не содержит начальных нулей, но всегда имеет четыре конечных нуля в десятичной части. Назначение NUMERIC DIGITS не влияет на формат выводимого по данному режиму результата.
Hours     Возвращает количество часов, прошедших с полуночи, в формате: чч (без начальных нулей).
Long     Возвращает время в формате чч:мм:сс.тт0000 (где тт представляет собой дробную часть секунд, определяемую в сотых долях секунды).
Minutes     Возвращает количество минут, прошедших с полуночи, в формате: мммм (без начальных нулей).
Normal     Возвращает время в формате, принятом по умолчанию - чч:мм:сс, как описано выше.
Reset     Возвращает ссссссссс.тт0000, число секунд с сотыми долями секунды, прошедших с момента, когда счетчик прошедшего времени был запущен или сброшен (см. ниже)? а также сбрасывает этот счетчик в ноль. Возвращенное число не содержит начальных нулей, но всегда имеет четыре конечных нуля в десятичной части.
Seconds     Возвращает количество секунд, прошедших с полуночи, в формате: ссссс (без начальных нулей).
<
Ниже приведено несколько примеров: TIME('L') -> '16:54:22.120000' /* Возможно */ TIME() -> '16:54:22' TIME('H') -> '16' TIME('M') -> '1014' /* 54 + 60*16 */ TIME('S') -> '60862' /* 22 + 60*(54+60*16) */ TIME('N') -> '16:54:22' TIME('C') -> '4:54pm'

Счетчик прошедшего времени

Счетчик прошедшего времени можно использовать для измерения интервалов реального времени. Часы запускаются при первом обращении к счетчику прошедшего времени. В качестве результата выполнения функций TIME('E') и TIME('R') возвращается значение 0.

Показания часов сохраняются в процессе обращения к внутренним программам, т.е. внутренняя программа наследует показания часов, запущенных вызывающей программой. Любой отсчет времени, выполняемый в вызывающей программе, не подвержен влиянию со стороны вызываемых программ или функций, даже если внутренняя программа произведет сброс часов.

Ниже приведен пример использования счетчика прошедшего времени: time('E') -> 0 /* При первом обращении */ /* здесь пауза в одну секунду */ time('E') -> 1.020000 /* или около того */ /* здесь пауза в одну секунду */ time('R') -> 2.030000 /* или около того */ /* здесь пауза в одну секунду */ time('R') -> 1.050000 /* или около того */

Прим.    По вопросу соответствия времен внутри одного выражения обращайтесь к описанию функции DATE. Счетчик прошедшего времени синхронизирован для других обращений к функциям TIME и DATE, поэтому при неоднократных обращениях к данному счетчику всегда возвращается один и тот же результат. По той же причине интервал между обычными результатами выполнения функций TIME и DATE может быть точно вычислен с помощью счетчика прошедшего времени.
Максимально допустимое значение: Если количество цифр в числе, определяющем количество прошедших секунд, превысит 9 (что соответствует 31.6 годам), то произойдет ошибка.




Содержание раздела