/** 
  * A type to represent a date
  * @author Barry Cornelius
  * @version 20th September 1998
  */
public interface Date
{
      /** @return the year part of the target date */
   public int getYear();

      /** @return the month part of the target date */
   public int getMonth();

      /** @return the day part of the target date */
   public int getDay();

      /** @param  pYear the value to set the year part of the target date */
   public void setYear(int pYear); 

      /** @param  pMonth the value to set the month part of the target date */
   public void setMonth(int pMonth);

      /** @param  pDay the value to set the day part of the target date */
   public void setDay(int pDay);

      /** @param  pObject the value with which to compare the target date
        * @return true if and only if the target represents the same date
        *         as pObject */
   public boolean equals(Object pObject);

      /** @return the hashcode for the value of the target */
   public int hashCode();

      /** @return a textual representation of the target date */
   public String toString();
}
