package org.teachingextensions.approvals.lite.util;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class DateUtils {
private static int TIME_SCALE[] = {Calendar.YEAR,
Calendar.MONTH,
Calendar.DATE,
Calendar.HOUR_OF_DAY,
Calendar.HOUR,
Calendar.MINUTE,
Calendar.SECOND,
Calendar.MILLISECOND};
public static Calendar setSignificantDigit(Calendar calendar, int smallestUnits) {
boolean removeOn = false;
for (int i : TIME_SCALE) {
if (removeOn) {
if (i == Calendar.DATE) {
// Work around since this is broke
calendar.set(i, 1);
} else if (i == Calendar.HOUR_OF_DAY) {
// Work around since this is broke
calendar.set(i, 0);
} else {
calendar.clear(i);
}
}
if (i == smallestUnits) {
removeOn = true;
}
}
return calendar;
}
public static void main(String args[]) {
MySystem.variable("Calendar.DATE = " + Calendar.DATE);
MySystem.variable("Year", setSignificantDigit(new GregorianCalendar(), Calendar.YEAR).getTime());
MySystem.variable("Month", setSignificantDigit(new GregorianCalendar(), Calendar.MONTH).getTime());
MySystem.variable("Day", setSignificantDigit(new GregorianCalendar(), Calendar.DAY_OF_MONTH).getTime());
MySystem.variable("Hour", setSignificantDigit(new GregorianCalendar(), Calendar.HOUR).getTime());
MySystem.variable("Minute", setSignificantDigit(new GregorianCalendar(), Calendar.MINUTE).getTime());
MySystem.variable("End Of Day", rollToEndOfDay(new Date()).getTime());
}
public static GregorianCalendar rollToEndOfDay(Date date) {
GregorianCalendar gregorianCalendar = new GregorianCalendar();
gregorianCalendar.setTime(date);
gregorianCalendar.set(Calendar.HOUR_OF_DAY, 23);
gregorianCalendar.set(Calendar.MINUTE, 59);
gregorianCalendar.set(Calendar.SECOND, 59);
gregorianCalendar.set(Calendar.MILLISECOND, 999);
return gregorianCalendar;
}
}