Time

Import List

    SysClock
 
Class List
IntervalThe Interval is a delta time measure which can be used to increment a TimeStamp or find the time difference between two TimeStamps.
TimeStampThe TimeStamp is a compressed date/time format with the advantage over the Unix time stamp of being able to represent any date/time in the SysClock.DateTime type.
Class Summary: Interval [Detail]
  +--Time.Interval

The Interval is a delta time measure which can be used to increment a TimeStamp or find the time difference between two TimeStamps. The maximum number of milliseconds in an interval will be the value msecPerDay.

Field Summary
dayInt-: LONGINT

          Number of days in this interval.
msecInt-: LONGINT

          The number of milliseconds in this interval.
Constructor Summary
InitInterval(VAR Interval, LONGINT, LONGINT)

          Initialize the Interval int with days days and msecs mS.
Method Summary
Add(Interval)

          
Cmp(Interval): SHORTINT

          Compares a to b.
Fraction(Interval): LONGREAL

          
Scale(LONGREAL)

          
Sub(Interval)

          
 
Class Summary: TimeStamp [Detail]
  +--Time.TimeStamp

The TimeStamp is a compressed date/time format with the advantage over the Unix time stamp of being able to represent any date/time in the SysClock.DateTime type. Note: TimeStamp is in UTC or local time when time zones are not supported by the local operating system.

Field Summary
days-: LONGINT

          Modified Julian days since `17 Nov 1858'.
msecs-: LONGINT

          Milliseconds since `00:00'.
Constructor Summary
InitTimeStamp(VAR TimeStamp, LONGINT, LONGINT)

          Initialize the TimeStamp t with days days and msecs mS.
Method Summary
Add(Interval)

          Adds the interval b to the time stamp a.
Cmp(TimeStamp): SHORTINT

          Compares a to b.
Delta(TimeStamp, VAR Interval)

          
Sub(Interval)

          Subtracts the interval b from the time stamp a.
 
Procedure Summary
GetTime(VAR TimeStamp)

          Set t to the current time of day.
Constant Summary
msecPerDay

          Number of millseconds in a day.
msecPerHour

          Number of millseconds in an hour.
msecPerMin

          Number of millseconds in a minute.
msecPerSec

          Number of millseconds in a second.

Class Detail: Interval
Field Detail

dayInt

FIELD dayInt-: LONGINT

Number of days in this interval.


msecInt

FIELD msecInt-: LONGINT

The number of milliseconds in this interval. This number is from [0, msecPerDay[.

Constructor Detail

InitInterval

PROCEDURE InitInterval(VAR int: Interval; 
                       days: LONGINT; 
                       msecs: LONGINT)

Initialize the Interval int with days days and msecs mS.

Pre-condition: msecs>=0

Method Detail

Add

PROCEDURE (VAR a: Interval) Add(b: Interval)

Post-condition: a = a + b


Cmp

PROCEDURE (VAR a: Interval) Cmp(b: Interval): SHORTINT

Compares a to b. Result:

-1

a<b

0

a=b

1

a>b

This means the comparison can be directly extrapolated to a comparison between the two numbers, for example,

Cmp(a,b)<0  then a<b
Cmp(a,b)=0  then a=b
Cmp(a,b)>0  then a>b
Cmp(a,b)>=0 then a>=b

Fraction

PROCEDURE (VAR a: Interval) Fraction(b: Interval): LONGREAL

Pre-condition: b<>0

Post-condition: RETURN a/b


Scale

PROCEDURE (VAR a: Interval) Scale(b: LONGREAL)

Pre-condition: b>=0;

Post-condition: a := a*b


Sub

PROCEDURE (VAR a: Interval) Sub(b: Interval)

Post-condition: a = a - b

 
Class Detail: TimeStamp
Field Detail

days

FIELD days-: LONGINT

Modified Julian days since `17 Nov 1858'. This quantity can be negative to represent dates occuring before day zero.


msecs

FIELD msecs-: LONGINT

Milliseconds since `00:00'.

Constructor Detail

InitTimeStamp

PROCEDURE InitTimeStamp(VAR t: TimeStamp; 
                        days: LONGINT; 
                        msecs: LONGINT)

Initialize the TimeStamp t with days days and msecs mS.

Pre-condition: msecs>=0

Method Detail

Add

PROCEDURE (VAR a: TimeStamp) Add(b: Interval)

Adds the interval b to the time stamp a.


Cmp

PROCEDURE (VAR a: TimeStamp) Cmp(b: TimeStamp): SHORTINT

Compares a to b. Result:

-1

a<b

0

a=b

1

a>b

This means the comparison can be directly extrapolated to a comparison between the two numbers, for example,

Cmp(a,b)<0  then a<b
Cmp(a,b)=0  then a=b
Cmp(a,b)>0  then a>b
Cmp(a,b)>=0 then a>=b

Delta

PROCEDURE (VAR a: TimeStamp) Delta(b: TimeStamp; 
                VAR c: Interval)

Post-condition: c = a - b


Sub

PROCEDURE (VAR a: TimeStamp) Sub(b: Interval)

Subtracts the interval b from the time stamp a.

 
Procedure Detail

GetTime

PROCEDURE GetTime(VAR t: TimeStamp)

Set t to the current time of day. In case of failure (that is, if SysClock.CanGetClock() is FALSE) the time `00:00 UTC' on `Jan 1 1970' is returned. This procedure is typically much faster than doing SysClock.GetClock followed by Calendar.SetTimeStamp.

Constant Detail

msecPerDay

CONST msecPerDay 

Number of millseconds in a day.


msecPerHour

CONST msecPerHour 

Number of millseconds in an hour.


msecPerMin

CONST msecPerMin 

Number of millseconds in a minute.


msecPerSec

CONST msecPerSec 

Number of millseconds in a second.