Difference between revisions of "GetPeriod"
(→Синтаксис) |
m (1 revision imported) |
(No difference)
|
Latest revision as of 07:51, 7 February 2021
GetPeriod (Функции работы с датами) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция получает величину времени, прошедшего с даты первого аргумента до даты второго аргумента, выраженную в указанных единицах. Функция может использоваться для определения времени, которое заняла определенная операция, либо цикл ожидания, однако, нужно понимать, что период времени вычисляется на основе системных часов, что приведет к некорректному результату функции, если системное время было изменено после получения начальной даты периода (<Дата 1>). Кроме того, данная функция обеспечивает точность не более десятков миллисекунд, так как точность системных часов компьютера обычно невелика. Чтобы получить большую точность при измерении периода и избавиться от зависимости от системных часов, можно использовать функцию dbgHRPCGetPeriod, однако, последняя подразумевает, что компьютер имеет таймер высокой точности, и оный переведен в рабочее состояние (обычно включение такого таймера происходит в BIOSе компьютера).
Синтаксис
GetPeriod(<Дата 1>,<Дата 2>,<Режим (INT)>=0):<Результат (NUMBER)>
Аргументы
<Дата 1>
- Дата и время начала периода<Дата 2>
- Дата и время окончания периода (обычно текущая дата)<Режим (INT)>
- Единицы измерения, в которых будет получен период. Возможны следующие значения:- 0 (по умолчанию) -- вещественное число, целая часть которого показывает количество прошедших дней, дробная же часть отвечает за единицы измерения меньше дня. К примеру
Trunc(<Результат GetPeriod>)
будет отдавать число прошедших дней,Trunc(<Результат GetPeriod>*24)
будет отдавать число прошедших часов и т.д. - 1 -- разница между двумя датами в днях (целое число)
- 2 -- разница между двумя датами в часах (целое число)
- 3 -- разница между двумя датами в минутах (целое число)
- 4 -- разница между двумя датами в секундах (целое число)
- 5 -- разница между двумя датами в миллисекундах (целое число). Нужно заметить, что максимальное разрешение системных часов обычно не превышает десятков миллисекунд.
- 0 (по умолчанию) -- вещественное число, целая часть которого показывает количество прошедших дней, дробная же часть отвечает за единицы измерения меньше дня. К примеру
Возвращаемое значение
Возвращает значение типа число (целое или вещественное в зависимости от режима).
Примеры
Message(GetPeriod('31.01.2012','31.01.2024',1)); //Будет выведено 4383 (прошло дней) Дата1:=Date(); Sleep(1250); Message(GetPeriod(Дата1,Date(),5)); //Будет выведено число около 1260 (прошло миллисекунд, число не будет равно 1250, так как остальные инструкции также занимают некоторое время)