Development Class Java

import java.util.*;
/**
 * @author Matthew D. Hicks
 *
 */
public class BasicTimer {
  public static final int TYPE_CLOCK = 1;
  public static final int TYPE_ELAPSED = 2;
  public static final int TYPE_REMAINING = 3;
  private int type;
  private long start;
  private long max;
  
  public BasicTimer(int type) {
    this.type = type;
    start = System.currentTimeMillis();
  }
  
  public long getTime() {
    if (type == TYPE_CLOCK) {
      return System.currentTimeMillis();
    } else if (type == TYPE_ELAPSED) {
      return System.currentTimeMillis() - start;
    } else if (type == TYPE_REMAINING) {
      return max - (System.currentTimeMillis() - start);
    }
    throw new RuntimeException("Type does not match anything known: " + type);
  }
  
  public void setMax(long max) {
    this.max = max;
  }
  
  public static void main(String[] args) throws Exception {
    int type = TYPE_REMAINING;
    BasicTimer timer = new BasicTimer(type);
    timer.setMax(10000);
    GregorianCalendar calendar = new GregorianCalendar();
    while (true) {
      Thread.sleep(1000);
      if (type == TYPE_CLOCK) {
        calendar.setTimeInMillis(timer.getTime());
        System.out.println("Clock: " + calendar);
      } else if (type == TYPE_ELAPSED) {
        System.out.println("Elapsed: " + (timer.getTime() / 1000) + " seconds");
      } else if (type == TYPE_REMAINING) {
        System.out.println("Remaining: " + (timer.getTime() / 1000) + " seconds");
      }
    }
  }
}