| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- IMPLEMENTATION MODULE Timing;
- (*
- * REPERTOIRE
- * Release 1.6
- * By Charles Bradford and Cole Brecheen
- * (c) Copyright 1985-1992 PMI
- * Green Bay, Wisconsin
- * All rights reserved
- * (414) 468-6040
- *
- * $Header: D:/logfiles/mods/timing.mov 1.7 10 Mar 1991 15:34:00 coleb $
- *
- *)
- (*EntryDiag:
- IMPORT Diagnostics;
- :EntryDiag*)
- IMPORT EnvironUtils;
- IMPORT M2Strings;
- IMPORT StrConv;
- IMPORT StrEdit;
- IMPORT SYSTEM;
- IMPORT VWindows;
- VAR
- Initialized : BOOLEAN;
- PROCEDURE Init();
- BEGIN
- IF Initialized THEN
- RETURN;
- ELSE
- Initialized := TRUE;
- END;
- (*EntryDiag:
- Diagnostics.Init();
- :EntryDiag*)
- EnvironUtils.Init();
- M2Strings.Init();
- StrConv.Init();
- StrEdit.Init();
- VWindows.Init();
- (*EntryDiag:
- Diagnostics.diagS( 'Entering Timing', '' );
- :EntryDiag*)
- BeginTimer();
- (*EntryDiag:
- Diagnostics.diagS( 'Exiting Timing', '' );
- :EntryDiag*)
- END Init;
- VAR
- hours, minutes, seconds, hunds : CARDINAL;
- PROCEDURE BeginTimer();
- VAR
- dumstr : ARRAY [0..80] OF CHAR;
- BEGIN
- EnvironUtils.GetTime(hours, minutes, seconds, hunds, dumstr);
- END BeginTimer;
- PROCEDURE ReadTimer(VAR hout, mout, sout, hunout : CARDINAL);
- VAR
- dumstr : ARRAY [0..20] OF CHAR;
- hused, mused, sused, hunused : INTEGER;
- BEGIN
- EnvironUtils.GetTime(hout, mout, sout, hunout, dumstr);
- hunused := INTEGER(hunout)-INTEGER(hunds);
- sused := INTEGER(sout)-INTEGER(seconds);
- mused := INTEGER(mout)-INTEGER(minutes);
- hused := INTEGER(hout)-INTEGER(hours);
- IF hunused<0 THEN
- INC( hunused, 100);
- DEC( sused);
- END;
- IF sused<0 THEN
- INC( sused, 60);
- DEC( mused);
- END;
- IF mused<0 THEN
- INC( mused, 60);
- DEC( hused);
- END;
- IF hused<0 THEN
- (* accounts for use through midnight; but does not
- handle use for longer than 24 hours *)
- INC( hused, 24);
- END;
- hunout := hunused;
- sout := sused;
- hout := hused;
- mout := mused;
- END ReadTimer;
- PROCEDURE ShowUsage(name : ARRAY OF CHAR);
- VAR
- h, m, s, hun : CARDINAL;
- dumstr : ARRAY [0..255] OF CHAR;
- numstr : ARRAY [0..10] OF CHAR;
- caption : ARRAY [0..31] OF CHAR;
- dumc : CARDINAL;
- BEGIN
- ReadTimer(h, m, s, hun);
- M2Strings.Concat('You have been using ', name, dumstr);
- StrEdit.Append(dumstr, ' for ');
- StrConv.CardinalToStr(h*60+m, 1, numstr);
- StrEdit.Append(dumstr, numstr);
- StrEdit.Append(dumstr, ' minute');
- IF h+h+m#1 THEN
- StrEdit.Append(dumstr, 's');
- END;
- StrEdit.Append(dumstr, ' and ');
- StrConv.CardinalToStr(s, 1, numstr);
- StrEdit.Append(dumstr, numstr);
- StrEdit.Append(dumstr, ' second');
- IF s#1 THEN
- StrEdit.Append(dumstr, 's');
- END;
- StrEdit.Append(dumstr, ' in this session.');
- caption := 'Elapsed Time';
- dumc := VWindows.MessageBox( VWindows.CurrentWindow,
- SYSTEM.ADR(dumstr), SYSTEM.ADR(caption), 0 );
- END ShowUsage;
- BEGIN
- Initialized := FALSE;
- Init();
- END Timing.
|