home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 July / Chip_1998-07_cd.bin / zkuste / JBuilder / BDK / Win / bdk_sep97.exe / _SETUP.1 / Timer.java < prev    next >
Encoding:
Java Source  |  1997-09-10  |  1.1 KB  |  67 lines

  1.  
  2. package sun.beanbox;
  3.  
  4. /**
  5.  * A utility class to help time internal operations.
  6.  *                        KGH 1/20/97
  7.  */
  8.  
  9. import java.util.Date;
  10.  
  11. public class Timer {
  12.  
  13.     private long startMillis;
  14.     private long endMillis;
  15.  
  16.     public Timer() {
  17.     reset();
  18.     }
  19.  
  20.     public Timer(boolean running) {
  21.     reset();
  22.     if (!running) {
  23.         endMillis = startMillis;
  24.     }
  25.     }
  26.  
  27.     public void reset() {
  28.     startMillis = getMillis();
  29.     endMillis = 0;
  30.     }
  31.  
  32.     public void stop() {
  33.     endMillis = getMillis();
  34.     }
  35.  
  36.     public String elapsed() {
  37.     long millis = delta();
  38.     if (millis > 1000L)  {
  39.        char xx[] = new char[2];
  40.        xx[0] = (char)('0' + (millis % 1000)/100);
  41.        xx[1] = (char)('0' + ((millis+5) % 100)/10);
  42.        return ("" + millis/1000 + "." + new String(xx) + " sec");
  43.     } else {
  44.        return ("" + millis + " millis");
  45.     }
  46.     }
  47.  
  48.     public void add(Timer tim) {
  49.     if (endMillis == 0) {
  50.         throw new Error("Can only add to a stopped Timer");
  51.     }
  52.     endMillis += tim.delta();
  53.     }
  54.  
  55.     private long delta() {
  56.     if (endMillis == 0) {
  57.         stop();
  58.     }
  59.     return (endMillis - startMillis);
  60.     }
  61.  
  62.     private long getMillis() {
  63.     return (new Date()).getTime();
  64.     }
  65.  
  66. }
  67.