// A class that implements the Date interface.
// Barry Cornelius, 20th September 1998
import java.util.StringTokenizer;
public class DateImpl implements Date
{
   private int iYear;
   private int iMonth;
   private int iDay;
   public DateImpl()
   {
      this(0, 0, 0);
   }
   public DateImpl(final int pYear, final int pMonth, final int pDay) 
   {
      iYear = pYear; 
      iMonth = pMonth; 
      iDay = pDay;
   }
   public DateImpl(final String pDateString)
   {
      final StringTokenizer tTokens = new StringTokenizer(pDateString, "-");
      final String tYearString = tTokens.nextToken();
      iYear = new Integer(tYearString).intValue();
      final String tMonthString = tTokens.nextToken();
      iMonth = new Integer(tMonthString).intValue();
      final String tDayString = tTokens.nextToken();
      iDay = new Integer(tDayString).intValue();
   }
   public int getYear()                   { return iYear; }
   public int getMonth()                  { return iMonth; }
   public int getDay()                    { return iDay; }
   public void setYear(final int pYear)   { iYear = pYear; }
   public void setMonth(final int pMonth) { iMonth = pMonth; }
   public void setDay(final int pDay)     { iDay = pDay; }
   public boolean equals(final Object pObject)
   {
      if ( ! (pObject instanceof DateImpl) )
      {
         return false;
      }
      return iYear==((DateImpl)pObject).iYear &&
             iMonth==((DateImpl)pObject).iMonth &&
             iDay==((DateImpl)pObject).iDay;
   }
   public int hashCode()
   {
      return iYear*416 + iMonth*32 + iDay;
   }
   public String toString()
   {
      return iYear + "-" + iMonth/10 + iMonth%10 + "-" + iDay/10 + iDay%10;
   }
}
