package org.ovirt.engine.core.compat;
import java.util.Date;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.user.datepicker.client.CalendarUtil;
public class DateTime extends Date {
private static final String[] dayNames = new String[DayOfWeek.values().length];
static {
for (int i = 0; i < DayOfWeek.values().length; ++i) {
dayNames[i] = DayOfWeek.values()[i].name();
}
}
public DateTime() {
this(getMinValue());
}
public DateTime(Date argvalue) {
super(argvalue.getTime());
}
public DateTime(long millis) {
super(millis);
}
public DayOfWeek getDayOfWeek() {
return DayOfWeek.forValue(this.getDay());
}
public String toString(Object dateFormat) {
if (dateFormat instanceof DateTimeFormat) {
return ((DateTimeFormat) dateFormat).format(this);
}
return null;
}
/**
* The Min Date in java
* @return - a date representing - Thu Jan 01 00:00:00 IST 1970
*/
public static Date getMinValue() {
// Return the static milliseconds representation of the min. date to avoid using GregorianCalendar which does
// not pass GWT compilation
return new Date(-7200000);
}
public DateTime addDays(int i) {
Date date = new Date();
CalendarUtil.addDaysToDate(date, i);
return new DateTime(date);
}
public static DateTime getNow() {
Date date = new Date();
return new DateTime(date.getTime());
}
public static String getDayOfTheWeekAsString(int dayOfTheWeek) {
return dayNames[dayOfTheWeek];
}
public DateTime resetToMidnight() {
Date date = new Date();
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
return new DateTime(date);
}
}