Справочное руководство по языку Ада-83


Операторы задержки, длительность и время


Выполнение оператора задержки вычисляет простое выражение и приостанавливает дальнейшее выполнение задачи, содержащей данный оператор задержки, по крайней мере на длительность, заданную вычисленным значением.

оператор-задержки ::= delay простое-выражение;

Простое выражение должно быть предопределенного фиксированного типа DURATION (ДЛИТЕЛЬНОСТЬ); его значение выражается в секундах; оператор задержки с отрицательным значением эквивалентен оператору задержки с нулевым значением.

Все реализации типа DURATION должны допускать представление длительности (положительные и отрицательные) по крайней мере до 86 400 с (одни сутки); минимальная представи-мая длительность, DURATION'SMALL, должна быть не больше 20 мс (по возможности значение не превышает 50 мкс. Заметим, что DURATION'SMALL не обязано соответствовать основному циклу таймера, именованному числу SYSTEM.TICK (см. 13.7).

Определение типа TIME приведено в предопределенном пакете CALENDAR. Функция CLOCK возвращает текущее значение типа TIME. Функции YEAR, MONTH, DAY и SECONDS возвращают соответствующие наименованиям значения для заданного значения аргумента типа TIME, а процедура SPLIT возвращает одновременно все четыре соответствующих значения. Наоборот, функция TIME-OF упаковывает номера года, месяца, числа дня и значение длительности в значение типа TIME. В операции " + " и " -" для сложения и вычитания значений времени и длительности, а также в операции соотношения для значений времени вкладывают традиционный смысл.

Исключение TIME_ERROR возбуждается в функции TIME-OF, если значения фактических параметров не формируют правильную дату. Это исключение возбуждается также операциями "+" и "-", если для заданных операндов они не могут возвратить дату с номером года из диапазона соответствующего подтипа или если операция " -" не может возвратить значение из диапазона типа DURATION.

package CALENDAR is

type TIME is private;

subtype YEAR_NUMBER is INTEGER range 1901 .. 2099; subtype MONTH_NUMBER is INTEGER range 1 .. 12; subtype DAY_NUMBER is INTEGER range 1 .. 31; subtype DAY_DURATION is DURATION range 0.0 .. 86_400.0;




Начало  Назад  Вперед



Книжный магазин