Write a class named Month The class should have an int field
Solution
public class Month {
   // Class variable
    private static final String[] MONTH_NAME = {\"January\", \"February\", \"March\", \"April\", \"May\", \"June\",
                                            \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"};
    // Instance variables
    private int monthNumber;
   /**
    * Default constructor
    */
    public Month() {
        this.monthNumber = 1;
    }
   /**
    * Parameterized constructor
    * @param monthNumber
    */
    public Month(int monthNumber) {
        setMonthNumber(monthNumber);
    }
   
    /**
    * Parameterized constructor
    * @param monthNumber
    */
    public Month(String monthName) {
        int monthNumber = 0;
        for (String month : Month.MONTH_NAME) {
            monthNumber += 1;
            if(monthName.equalsIgnoreCase(month)) {
                this.monthNumber = monthNumber;
                break;
            }
        }
    }
   /**
    * Returns the monthNumber
    */
    public int getMonthNumber() {
        return monthNumber;
    }
   /**
    * @param monthNumber the monthNumber to set
    */
    public void setMonthNumber(int monthNumber) {
        if((monthNumber < 1) || (monthNumber > 12))
            this.monthNumber = 1;
        else
            this.monthNumber = monthNumber;
    }
   
    /**
    * Returns the monthName
    */
    public String getMonthName() {
        return MONTH_NAME[this.monthNumber - 1];
    }
   @Override
    public String toString() {
        return getMonthName();
    }
   public boolean equals(Month month) {
        if(month != null) {
            if((this == month) || (this.monthNumber == month.monthNumber))
                return true;
        }
       
        return false;
    }
   
    /**
    * Returns true if the calling object\'s month is greater than the argument\'s month
    * @param month
    * @return
    */
    public boolean greaterThan(Month month) {
        return this.monthNumber > month.monthNumber;
    }
   
    /**
    * Returns true if the calling object\'s month is less than the argument\'s month
    * @param month
    * @return
    */
    public boolean lessThan(Month month) {
        return this.monthNumber < month.monthNumber;
    }
 }


