Библиотека обработки времени Time
Библиотека времени содержит функции и определения типов для вычислений времени в формате времени UNIX, который подсчитывает количество секунд с «эпохи». Это очень удобно для программ, которые работают с временными интервалами: разница между двумя значениями времени UNIX представляет собой разницу в реальном времени, измеренную в секундах.
Какова эпоха?
Первоначально он был определен как начало 1970 GMT. (1 января 1970 года в юлианский день) GMT, время по Гринвичу, является традиционным термином для часового пояса в Англии.
TimeStruct - тип структуры, подходящий для хранения времени и даты..
Процедуры библиотеки
Time_dateToEpoch
Прототип |
function Time_dateToEpoch(var ts : TimeStruct) : longint; |
---|---|
Описание |
Эта функция возвращает время UNIX: количество секунд с 1 января 1970 года 0h00mn00s. |
Параметры |
|
Возвращает |
Количество секунд с 1 января 1970 года 0h00mn00s. |
Требует |
Ничего. |
Пример |
var ts1 : TimeStruct; Epoch : longint; ... // what is the epoch of the date in ts ? epoch := Time_dateToEpoch(@ts1) ; |
Примечания |
Нет. |
Time_epochToDate
Прототип |
procedure Time_epochToDate(e : longint; var ts : TimeStruct); |
---|---|
Описание |
Преобразует UNIX время и дату. |
Параметры |
|
Возвращает |
Ничего. |
Требует |
Ничего. |
Пример |
var ts2 : TimeStruct; epoch : longint; ... //what date is epoch 1234567890 ? epoch := 1234567890 ; Time_epochToDate(epoch,ts2); |
Примечания |
Нет. |
Time_dateDiff
Прототип |
function Time_dateDiff(var t1, t2 : TimeStruct) : longint ; |
---|---|
Описание |
Эта функция сравнивает две даты и Возвращает разницу во времени в секундах как долгое знаком. Результат положительный, если t1 до t2, результат равен нулю, если t1 совпадает с t2, и результат отрицательный, если t1 после t2. |
Параметры |
|
Возвращает |
Разница во времени в секундах как долгое знаком. |
Требует |
Ничего. |
Пример |
var ts1, ts2 : TimeStruct; diff : longint; ... //how many seconds between these two dates contained in ts1 and ts2 buffers? diff := Time_dateDiff(ts1, ts2); |
Примечания |
Нет. |
Пример использования библиотеки
Демонстрация использования подпрограмм библиотеки времени для расчета времени в формате времени UNIX.
program Time_Demo; {* * simple time structure *} type TimeStruct = record ss : byte ; // seconds mn : byte ; // minutes hh : byte ; // hours md : byte ; // day in month, from 1 to 31 wd : byte ; // day in week, monday=0, tuesday=1, .... sunday=6 mo : byte ; // month number, from 1 to 12 (and not from 0 to 11 as with unix C time !) yy : word ; // year Y2K compliant, from 1892 to 2038 end; var ts1, ts2 : TimeStruct; buf : array[256] of byte ; epoch, diff : longint ; begin ts1.ss := 0 ; ts1.mn := 7 ; ts1.hh := 17 ; ts1.md := 23 ; ts1.mo := 5 ; ts1.yy := 2006 ; {* * what is the epoch of the date in ts ? *} epoch := Time_dateToEpoch(@ts1) ; // epoch = 1148404020 {* * what date is epoch 1234567890 ? *} epoch := 1234567890 ; Time_epochToDate(epoch, @ts2) ; // ts2.ss := 30 ; // ts2.mn := 31 ; // ts2.hh := 23 ; // ts2.md := 13 ; // ts2.wd := 4 ; // ts2.mo := 2 ; // ts2.yy := 2009 ; {* * how much seconds between this two dates ? *} diff := Time_dateDiff(@ts1, @ts2) ; // diff = 86163870 end.
Определение типа TimeStruct
type TimeStruct = record ss : byte ; // seconds mn : byte ; // minutes hh : byte ; // hours md : byte ; // day in month, from 1 to 31 wd : byte ; // day in week, monday=0, tuesday=1, .... sunday=6 mo : byte ; // month number, from 1 to 12 (and not from 0 to 11 as with unix C time !) yy : word ; // year Y2K compliant, from 1892 to 2038 end;