package se.chalmers.gdcn.utils; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; /** * Type safe time unit mapping to Calendar constants. */ public enum Time { MILLISECOND(Calendar.MILLISECOND, 1), SECOND(Calendar.SECOND, 1000), MINUTE(Calendar.MINUTE, 60*SECOND.comparedToMillis), HOUR(Calendar.HOUR, 3600*SECOND.comparedToMillis), ; private final int typeConstant; private final long comparedToMillis; Time(int typeConstant, long comparedToMillis) { this.typeConstant = typeConstant; this.comparedToMillis = comparedToMillis; } public int getTypeConstant() { return typeConstant; } public long getComparedToMillis() { return comparedToMillis; } public static Date futureDate(Time unit, int value){ Calendar calendar = new GregorianCalendar(); calendar.add(unit.typeConstant, value); return calendar.getTime(); } }