public class Birthday1 
{
   private String nickName;        // person's nick
   private int month;              // month of birth
   private int date;               // day of birth

   public Birthday1(String nick, int month, int date) throws Exception
   {
     nickName = nick;
     setMonth(month);
     setDate(date);
   }

   private void setMonth(int month) throws Exception
   {
      if (month < 1 || month > 12) // validating the  month of birth
      {
         Exception e = new Exception("Illegal month for " + nickName);
         throw e;
      }
      else
         this.month = month;       // setting up the class variable
   }

   private void setDate(int date) throws Exception
   {
      boolean valid = true;
      if (date < 1) valid = false; // validating the day of birth
      if (month == 1 && date > 31) valid = false;
      if (month == 2 && date > 29) valid = false;
      if (month == 3 && date > 31) valid = false;
      if (month == 4 && date > 30) valid = false;
      if (month == 5 && date > 31) valid = false;
      if (month == 6 && date > 30) valid = false;
      if (month == 7 && date > 31) valid = false;
      if (month == 8 && date > 31) valid = false;
      if (month == 9 && date > 30) valid = false;
      if (month == 10 && date > 31) valid = false;
      if (month == 11 && date > 30) valid = false;
      if (month == 12 && date > 31) valid = false;

      if (! valid)
      {
         Exception e = new Exception("Illegal date for " + nickName);
         throw e;
      }
      else
         this.date = date;          // setting up the class variable
   }

   public String toString()
   {
      return nickName + ": " + month + "/" + date;
   }
}
