package mf;
/*Generated by MPS */
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
import java.util.Date;
import java.util.Calendar;
public class MfDate implements Comparable {
private static MfDate myToday;
public static final MfDate PAST = new MfDate(new GregorianCalendar(0, 1, 1));
public static final MfDate FUTURE = new MfDate(new GregorianCalendar(10000, 1, 1));
private SimpleDateFormat myFormatter = (SimpleDateFormat) DateFormat.getDateInstance();
private GregorianCalendar myBase;
public MfDate() {
this(new GregorianCalendar());
}
public MfDate(int year, int month, int day) {
initialize(new GregorianCalendar(year, month - 1, day));
}
public MfDate(Date arg) {
GregorianCalendar gc = new GregorianCalendar();
gc.setTime(arg);
initialize(gc);
}
public MfDate(GregorianCalendar arg) {
initialize(arg);
}
private void initialize(GregorianCalendar arg) {
myBase = trimToDays(arg);
}
private GregorianCalendar trimToDays(GregorianCalendar arg) {
arg.set(Calendar.HOUR_OF_DAY, 0);
arg.set(Calendar.MINUTE, 0);
arg.set(Calendar.SECOND, 0);
arg.set(Calendar.MILLISECOND, 0);
return arg;
}
public MfDate addDays(int arg) {
return new MfDate(new GregorianCalendar(getYear(), getMonth(), getDayOfMonth() + arg));
}
public MfDate minusDays(int arg) {
return addDays(-arg);
}
public boolean after(MfDate arg) {
return getTime().after(arg.getTime());
}
public boolean before(MfDate arg) {
return getTime().before(arg.getTime());
}
@Override
public int compareTo(Object arg) {
MfDate other = (MfDate) arg;
return getTime().compareTo(other.getTime());
}
@Override
public boolean equals(Object arg) {
if (!((arg instanceof MfDate))) {
return false;
}
MfDate other = (MfDate) arg;
return (myBase.equals(other.myBase));
}
public Date getTime() {
return myBase.getTime();
}
public String formattedString() {
return myFormatter.format(getTime());
}
public GregorianCalendar getCalendar() {
return myBase;
}
public int getDayOfMonth() {
return myBase.get(Calendar.DAY_OF_MONTH);
}
public String getMediumString() {
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
return df.format(getTime());
}
public int getMonth() {
return myBase.get(Calendar.MONTH);
}
public String getSqlString() {
myFormatter.applyPattern("#M/d/yyyy#");
return myFormatter.format(getTime());
}
public int getYear() {
return myBase.get(Calendar.YEAR);
}
@Override
public int hashCode() {
return myBase.hashCode();
}
public String rawString() {
return myBase.getTime().toString();
}
@Override
public String toString() {
return formattedString();
}
public static MfDate past() {
GregorianCalendar greg = new GregorianCalendar(0, 1, 1);
return new MfDate(greg);
}
public static void setToday(int year, int month, int day) {
MfDate.setToday(new MfDate(year, month, day));
}
public static void setToday(MfDate arg) {
myToday = arg;
}
public static MfDate today() {
return ((myToday == null) ? new MfDate() : myToday);
}
}