home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / modula2 / library / tasking / clockuti.mod < prev    next >
Text File  |  1986-03-10  |  1KB  |  41 lines

  1. IMPLEMENTATION MODULE ClockUtilities;
  2.  
  3.   FROM TimeDate IMPORT Time, GetTime;
  4.   FROM DateUtilities IMPORT DateDifference;
  5.  
  6.   PROCEDURE TimeDifference( start, end: Time): REAL;
  7.     VAR
  8.       days, dif1, dif2: REAL;
  9.     BEGIN
  10.       IF start.day = end.day THEN
  11.     days := 0.0;
  12.       ELSIF start.day < end.day THEN
  13.     days := FLOAT(DateDifference(start, end));
  14.       ELSE
  15.     days := - FLOAT(DateDifference(end, start));
  16.       END;
  17.       IF end.minute >= start.minute THEN
  18.     dif1 := FLOAT( end.minute - start.minute );
  19.       ELSE
  20.     dif1 := - FLOAT( start.minute - end.minute );
  21.       END;
  22.       IF end.millisec >= start.millisec THEN
  23.     dif2 := FLOAT( end.millisec - start.millisec );
  24.       ELSE
  25.     dif2 := - FLOAT( start.millisec - end.millisec );
  26.       END;
  27.       RETURN (days * 1440.0 + dif1) * 60.0 + dif2 / 1000.0;
  28.     END TimeDifference;
  29.  
  30.   PROCEDURE Pause(secs: REAL);
  31.     VAR
  32.       start, end: Time;
  33.     BEGIN
  34.       GetTime(start);
  35.       REPEAT
  36.     GetTime(end);
  37.       UNTIL TimeDifference(start,end) >= secs;
  38.     END Pause;
  39.  
  40.   END ClockUtilities.
  41.