home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / UTILITY / TIME.M < prev    next >
Encoding:
Text File  |  1990-05-03  |  2.2 KB  |  100 lines

  1.  
  2. MODULE Time;
  3.  
  4. FROM InOut IMPORT Write, Read, WriteLn, WriteString, ReadString, GotoXY;
  5.  
  6. FROM Clock IMPORT Time, Date, CurrentTime, CurrentDate, SetDateAndTime;
  7.  
  8. FROM TimeConvert IMPORT TimeToText, DateToText, TextToTime, TextToDate;
  9.  
  10.  
  11. CONST ESCchar = 33C; (* ESC-Zeichen *)
  12.  
  13. PROCEDURE clrEOS; (* löscht Bildschirm ab Cursorpos. *)
  14.   BEGIN
  15.     Write (ESCchar);
  16.     Write ('J')
  17.   END clrEOS;
  18.  
  19. PROCEDURE clrEOL; (* löscht Zeile ab Cursorpos. *)
  20.   BEGIN
  21.     Write (ESCchar);
  22.     Write ('K')
  23.   END clrEOL;
  24.  
  25. PROCEDURE showDateTime;
  26.   VAR s:ARRAY [0..31] OF CHAR;
  27.   BEGIN
  28.     GotoXY (1,1);
  29.     WriteString ('Das augenblickliche Datum ist ');
  30.     DateToText (CurrentDate (), '', s);
  31.     WriteString (s);
  32.     GotoXY (1,3);
  33.     WriteString ('Die augenblickliche Zeit ist ');
  34.     TimeToText (CurrentTime (), '', s);
  35.     WriteString (s);
  36.   END showDateTime;
  37.  
  38. PROCEDURE showOK ( ok: BOOLEAN ): BOOLEAN;
  39.   BEGIN
  40.     IF ok THEN
  41.       WriteString ('OK.')
  42.     ELSE
  43.       WriteString ('Ungültig !')
  44.     END;
  45.     RETURN ok
  46.   END showOK;
  47.  
  48. PROCEDURE enter ( t: ARRAY OF CHAR; VAR s: ARRAY OF CHAR );
  49.   BEGIN
  50.     GotoXY (0,12);
  51.     WriteString (t);
  52.     ReadString (s);
  53.     WriteLn;
  54.   END enter;
  55.  
  56. PROCEDURE menu;
  57.   BEGIN
  58.     GotoXY (0,6);
  59.     WriteString ('E(nde');
  60.     WriteLn;
  61.     WriteString ('Z(eit setzen');
  62.     WriteLn;
  63.     WriteString ('D(atum setzen');
  64.   END menu;
  65.  
  66. VAR selection: CHAR;
  67.     s: ARRAY [0..31] OF CHAR;
  68.     ok: BOOLEAN;
  69.     newTime: Time;
  70.     newDate: Date;
  71.  
  72. BEGIN
  73.   menu;
  74.   LOOP
  75.     showDateTime;
  76.     
  77.     GotoXY (0,10);
  78.     WriteString ('Ihre Wahl: ');
  79.     clrEOL;                         (* löscht Zeile ab Cursorpos. *)
  80.     Read (selection);
  81.     
  82.     clrEOS;                         (* löscht Bildschirm ab Cursorpos. *)
  83.     
  84.     CASE CAP (selection) OF
  85.       'E': EXIT |
  86.       'Z': enter ('Neue Zeit: ',s);
  87.            TextToTime (s,newTime,ok);
  88.            IF showOK (ok) THEN
  89.              SetDateAndTime ( CurrentDate (), newTime )
  90.            END |
  91.       'D': enter ('Neues Datum: ',s);
  92.            TextToDate (s,0,newDate,ok);
  93.            IF showOK (ok) THEN
  94.              SetDateAndTime ( newDate, CurrentTime () )
  95.            END |
  96.     ELSE
  97.     END (* of CASE *)
  98.   END (* of LOOP *)
  99. END Time.
  100.