Hey guys. I wanted to know if someone can tell me what's wrong with my code. I got it to work, to a point. It shows all the months, however, when a user inputs the month/number it ends. Which it needs to playback the month... Example: 2 = March
Here's the code
import java.util.Scanner;
public class MonthDemo
{
public static void main(String[] args)
{
// Use the no-arg constructor.
Month object1 = new Month();
System.out.println("Month " + object1.getMonthNumber() +
" = " + object1);
Month object2 = new Month(2);
for (int i = 1; i <= 12; i++)
{
object2.setMonthNumber(i);
System.out.println("Month " + object2.getMonthNumber() +
" name is " + object2);
}
String mName;
Scanner keyboard = new Scanner(System.in);
Month object5 = new Month("January");
System.out.println("Enter a month name: ");
mName = keyboard.nextLine();
System.out.println(object5.mName());
}
}
And the other part...
/**
Month</strong> <strong class="highlight">Class</strong>
Chapter</strong> <strong class="highlight">9</strong>, <strong class="highlight">Programming</strong> <strong class="highlight">Challenge</strong> 6
*/
public class Month
{
private int monthNumber;
/**
The No-arg constructor initializes the object to
<strong class="highlight">month</strong> #1.
*/
public Month()
{
monthNumber = 1;
}
/**
Constructor
@param m The <strong class="highlight">month</strong> number to initialize the object to.
*/
public Month(int m)
{
if (m < 1 || m > 12)
monthNumber = 1;
else
monthNumber = m;
}
/**
Constructor
@param name The name of the <strong class="highlight">month</strong> to initialize the object to.
*/
public Month(String name)
{
if (name.equalsIgnoreCase("january"))
monthNumber = 1;
else if (name.equalsIgnoreCase("february"))
monthNumber = 2;
else if (name.equalsIgnoreCase("march"))
monthNumber = 3;
else if (name.equalsIgnoreCase("april"))
monthNumber = 4;
else if (name.equalsIgnoreCase("may"))
monthNumber = 5;
else if (name.equalsIgnoreCase("june"))
monthNumber = 6;
else if (name.equalsIgnoreCase("july"))
monthNumber = 7;
else if (name.equalsIgnoreCase("august"))
monthNumber = 8;
else if (name.equalsIgnoreCase("september"))
monthNumber = 9;
else if (name.equalsIgnoreCase("october"))
monthNumber = 10;
else if (name.equalsIgnoreCase("november"))
monthNumber = 11;
else if (name.equalsIgnoreCase("december"))
monthNumber = 12;
else
monthNumber = 1;
}
/**
The setMonthNumber method sets the <strong class="highlight">month</strong>.
@param m The number of the <strong class="highlight">month</strong>.
*/
public void setMonthNumber(int m)
{
if (m < 1 || m > 12)
monthNumber = 1;
else
monthNumber = m;
}
/**
The getMonthNumber method gets the <strong class="highlight">month</strong> number.
@return The number of the <strong class="highlight">month</strong>.
*/
public int getMonthNumber()
{
return monthNumber;
}
/**
The getMonthName method gets the name of the <strong class="highlight">month</strong>.
@return The name of the <strong class="highlight">month</strong>.
*/
public String getMonthName()
{
String name;
switch (monthNumber)
{
case 1: name = "January";
break;
case 2: name = "February";
break;
case 3: name = "March";
break;
case 4: name = "April";
break;
case 5: name = "May";
break;
case 6: name = "June";
break;
case 7: name = "July";
break;
case 8: name = "August";
break;
case 9: name = "September";
break;
case 10: name = "October";
break;
case 11: name = "November";
break;
case 12: name = "December";
break;
default: name = "Unknown";
}
return name;
}
/**
toString method
@return A reference to a String representation of
the object.
*/
public String toString()
{
return getMonthName();
}
/**
equals method
@param month2 Another <strong class="highlight">Month</strong> object.
@return true if the two <strong class="highlight">Month</strong> objects contain
the same <strong class="highlight">month</strong>, false otherwise.
*/
public boolean equals(Month month2)
{
boolean status;
if (month2.getMonthNumber() == monthNumber)
status = true;
else
status = false;
return status;
}
/**
greaterThan method
@param month2 Another <strong class="highlight">Month</strong> object.
@return true if the calling objects is greater
than the argument, false otherwise.
*/
public boolean greaterThan(Month month2)
{
boolean status;
if (monthNumber > month2.getMonthNumber())
status = true;
else
status = false;
return status;
}
/**
lessThan method
@param month2 Another <strong class="highlight">Month</strong> object.
@return true if the calling objects is less
than the argument, false otherwise.
*/
public boolean lessThan(Month month2)
{
boolean status;
if (monthNumber < month2.getMonthNumber())
status = true;
else
status = false;
return status;
}
}