The GNU Modula-2 front end to GCC

gm2-libs-iso/SysClock

DEFINITION MODULE SysClock;

(* Facilities for accessing a system clock that records the date
   and time of day *)

CONST

  maxSecondParts = 1000000 ;

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;
(* Tests if the clock can be read *)


PROCEDURE CanSetClock(): BOOLEAN;
(* Tests if the clock can be set *)


PROCEDURE IsValidDateTime(userData: DateTime): BOOLEAN;
(* Tests if the value of userData is a valid *)


PROCEDURE GetClock(VAR userData: DateTime);
(* Assigns local date and time of the day to userData *)


PROCEDURE SetClock(userData: DateTime);
(* Sets the system time clock to the given local date and
   time *)

END SysClock.