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;
}
}

