package org.ovirt.engine.core.compat; import java.text.DateFormat; import java.text.DateFormatSymbols; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class DateTime extends Date { // public static Date Now = new DateTime(); // public static DateTime Now2 = new DateTime(); private static final String dayNames[] = new DateFormatSymbols().getWeekdays(); public DateTime(int year, int month, int date) { this(new Date(year, month, date)); } public DateTime() { this(getMinValue()); } public DateTime(Date argvalue) { super(argvalue.getTime()); } public DateTime(long millis) { super(millis); } /** * This method resets the datetime object to 00:00:00.000 on the same date * @return */ public DateTime resetToMidnight() { Calendar cal = Calendar.getInstance(); cal.setTime(this); cal.set(Calendar.HOUR_OF_DAY,0); cal.set(Calendar.MINUTE,0); cal.set(Calendar.SECOND,0); cal.set(Calendar.MILLISECOND,0); return new DateTime(cal.getTime()); } public DayOfWeek getDayOfWeek() { return DayOfWeek.forValue(this.getDay()); } public long getTicks() { return this.getTime(); } public long getTotalMilliseconds() { return this.getTime(); } public DateTime(int i) { super(i); } public String toString(String formatString) { // c# compatibility boolean compat = false; if (formatString.equals("yyyy-MM-ddTHH:mm:ss")) { formatString = "yyyy-MM-ddHH:mm:ss"; compat = true; } SimpleDateFormat fmt = new SimpleDateFormat(formatString); String returnedValue = fmt.format(this); if (compat) { returnedValue = returnedValue.substring(0, 10) + "T" + returnedValue.substring(10); } return returnedValue; } public String toString(DateFormat dateFormat) { return dateFormat.format(this); } public Date AddSeconds(int i) { Calendar cal = Calendar.getInstance(); cal.setTime(this); cal.add(Calendar.SECOND, i); return cal.getTime(); } public DateTime AddDays(int i) { Calendar cal = Calendar.getInstance(); cal.setTime(this); cal.add(Calendar.DATE, i); return new DateTime(cal.getTime()); } public TimeSpan Subtract(Date date) { long span = this.getTime() - date.getTime(); return new TimeSpan(span); } public DateTime AddSeconds(double secsSinceEpoch) { Calendar cal = Calendar.getInstance(); cal.setTime(this); cal.add(Calendar.SECOND, (int) secsSinceEpoch); return new DateTime(cal.getTime()); } /** * The Min Date in java * * @return - a date representing - Thu Jan 01 00:00:00 IST 1970 */ public static Date getMinValue() { GregorianCalendar javaEpochTime = new GregorianCalendar(); javaEpochTime.clear(); return javaEpochTime.getTime(); } public static DateTime getNow() { return new DateTime(System.currentTimeMillis()); } public Date AddHours(int graceTime) { Calendar cal = Calendar.getInstance(); cal.setTime(this); cal.add(Calendar.HOUR, graceTime); return new DateTime(cal.getTime()); } public DateTime AddMilliseconds(int interval) { Calendar cal = Calendar.getInstance(); cal.setTime(this); cal.add(Calendar.MILLISECOND, interval); return new DateTime(cal.getTime()); } public Date AddMinutes(int i) { Calendar cal = Calendar.getInstance(); cal.setTime(this); cal.add(Calendar.MINUTE, i); return new DateTime(cal.getTime()); } public Date AddMinutes(double i) { Calendar cal = Calendar.getInstance(); cal.setTime(this); cal.add(Calendar.MINUTE, (int) i); return new DateTime(cal.getTime()); } public static DateTime getUtcNow() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.MILLISECOND, -cal.get(Calendar.DST_OFFSET) - cal.get(Calendar.ZONE_OFFSET)); return new DateTime(cal.getTime()); } public static String getDayOfTheWeekAsString(int dayOfTheWeek) { return dayNames[dayOfTheWeek]; } public static boolean TryParseExact(String value, String string, Object dateTimeFormat, DateTimeStyles none, RefObject<Date> tempRefObject) { // TODO Auto-generated method stub throw new NotImplementedException(); // juicommon } public static Date ParseExact(String entity, String string, CultureInfo currentCulture) { // TODO Auto-generated method stub throw new NotImplementedException(); // juicommon } }