16.2.2. Опрос и назначение времени
Процедуры GetTime(VAR Hour, Min, Sec, Sec100 : Word ) и SetTime( Hour, Min, Sec, Sec100: Word) опрашивают и устанавливают значение текущего времени во встроенных часах ПЭВМ. Обе процедуры используют одинаковую последовательность параметров:
( часы, минуты, секунды, миллисекунды )
При установке времени процедурой SetTime их можно задавать непосредственно значениями. Разрешенные значения для установки времени таковы: часы — 0...23, минуты и секунды — 0...59, миллисекунды — 0...99. При нарушении диапазонов время не устанавливается.
- 352 -
Неаккуратное использование процедуры SetTime может сильно изменить представление компьютера о времени, зато процедура GetTime вполне безопасна. С ее помощью можно сделать счетчик времени работы программы. Схема включения процедур в программу приводится на рис. 16.4.
| USES DOS;
| VAR
| h, min, s, ms : Word; { отсечки времени по часам }
| Time : Real; { время работы в секундах }
| BEGIN
| GetTime( h, min, s, ms ); { начало работы программы }
| { время начала программы в секундах : }
| Time := ( h*60 + min )*60 + s + ms/100;
| { === программа работает - время идет === }
| Write(' Нажмите ENTER' ); ReadLn;
| GetTime( h, min, s, ms ); { конец работы программы }
| { время работы программы в секундах : }
| Time := ( h*60 + min )*60 + s + ms/100 - Time;
| ms:= Trunc( 100 * Frac( Time ) ); { миллисекунды }
| h := Trunc( Time ) div 3600; { часы }
| min := Trunc( Time-3600*h ) div 60; { минуты }
| s := Trunc( Time-3600*h ) mod 60: { секунды }
| WriteLn( 'Активное время работы , h:1,' ч ',
| min:1, ' мин ', s:1, ',' , ms:1, ' с' );
| ReadLn { пауза... }
| END.
Рис. 16.4