Time Library
The Time Library contains functions and type definitions for time calculations in the UNIX time format which counts the number of seconds since the "epoch". This is very convenient for programs that work with time intervals: the difference between two UNIX time values is a real-time difference measured in seconds.
What is the epoch?
Originally it was defined as the beginning of 1970 GMT. (January 1, 1970 Julian day)
GMT, Greenwich Mean Time, is a traditional term for the time zone in England.
The TimeStruct type is a structure type suitable for time and date storage.
Library Routines
Time_dateToEpoch
Prototype |
sub function Time_dateToEpoch(dim byref ts as TimeStruct) as longint |
---|---|
Description |
This function returns the UNIX time : number of seconds since January 1, 1970 0h00mn00s. |
Parameters |
|
Returns |
Number of seconds since January 1, 1970 0h00mn00s. |
Requires |
Nothing. |
Example |
dim ts1 as TimeStruct Epoch as longint ... ' what is the epoch of the date in ts ? epoch = Time_dateToEpoch(@ts1) |
Notes |
None. |
Time_epochToDate
Prototype |
sub procedure Time_epochToDate(dim e as longint, dim byref ts as TimeStruct) |
---|---|
Description |
Converts the UNIX time to time and date. |
Parameters |
|
Returns |
Nothing. |
Requires |
Nothing. |
Example |
dim ts2 as TimeStruct epoch as longint ... ' what date is epoch 1234567890 ? epoch = 1234567890 Time_epochToDate(epoch,ts2) |
Notes |
None. |
Time_dateDiff
Prototype |
sub function Time_dateDiff(dim byref t1, t2 as TimeStruct) as longint |
---|---|
Description |
This function compares two dates and returns time difference in seconds as a signed long.
Result is positive if |
Parameters |
|
Parameters |
None. |
Returns |
Time difference in seconds as a signed long. |
Requires |
Nothing. |
Example |
dim ts1, ts2 as TimeStruct diff as longint ... ' how many seconds between these two dates contained in ts1 and ts2 buffers? diff = Time_dateDiff(ts1, ts2) |
Notes |
None. |
Library Example
Demonstration of Time library routines usage for time calculations in UNIX time format.
program Time_Demo '* '* simple time structure '* structure TimeStruct dim ss as byte ' seconds dim mn as byte ' minutes dim hh as byte ' hours dim md as byte ' day in month, from 1 to 31 dim wd as byte ' day in week, monday=0, tuesday=1, .... sunday=6 dim mo as byte ' month number, from 1 to 12 (and not from 0 to 11 as with unix C time !) dim yy as word ' year Y2K compliant, from 1892 to 2038 end structure dim ts1, ts2 as TimeStruct epoch, diff as longint main: 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 definition
structure TimeStruct dim ss as byte ' seconds dim mn as byte ' minutes dim hh as byte ' hours dim md as byte ' day in month, from 1 to 31 dim wd as byte ' day in week, monday=0, tuesday=1, .... sunday=6 dim mo as byte ' month number, from 1 to 12 (and not from 0 to 11 as with unix C time !) dim yy as word ' year Y2K compliant, from 1892 to 2038 end structure
What do you think about this topic ? Send us feedback!
Find them on
