|
DEFINITION MODULE SysClock; (* Facilities for accessing a system clock that records the date and time of day *) CONST maxSecondParts = <implementation-defined integral value>; TYPE Month = [1 .. 12]; Day = [1 .. 31]; Hour = [0 .. 23]; Min = [0 .. 59]; Sec = [0 .. 59]; Fraction = [0 .. maxSecondParts]; UTCDiff = [-780 .. 720]; DateTime = RECORD year: CARDINAL; month: Month; day: Day; hour: Hour; minute: Min; second: Sec; fractions: Fraction; (* parts of a second *) zone: UTCDiff; (* Time zone differential factor which is the number of minutes to add to local time to obtain UTC. *) summerTimeFlag: BOOLEAN; (* Interpretation of flag depends on local usage. *) END; PROCEDURE CanGetClock (): BOOLEAN; (* Returns TRUE if a system clock can be read; FALSE otherwise *) PROCEDURE CanSetClock (): BOOLEAN; (* Returns TRUE if a system clock can be set; FALSE otherwise *) PROCEDURE IsValidDateTime (userData: DateTime): BOOLEAN; (* Returns TRUE if the value of userData represents a valid date and time; FALSE otherwise *) PROCEDURE GetClock (VAR userData: DateTime); (* If possible, assigns system date and time of day to userData *) PROCEDURE SetClock (userData: DateTime); (* If possible, sets the system clock to the values of userData *) END SysClock. |