JAVA CODE Write a class named MonthDays. The class’s constructor should accept t
ID: 673397 • Letter: J
Question
JAVA CODE
Write a class named MonthDays. The class’s constructor should accept two arguments:
l An integer for the month (1 = January, 2 February, etc).
l An integer for the year
The class should have a method named getNumberOfDays that returns the number of days
in the specified month. The method should use the following criteria to identify leap years:
1. Determine whether the year is divisible by 100. If it is, then it is a leap year if and
if only it is divisible by 400. For example, 2000 is a leap year but 2100 is not.
2. If the year is not divisible by 100, then it is a leap year if and if only it is divisible
by 4. For example, 2008 is a leap year but 2009 is not.
Demonstrate the class in a program that asks the user to enter the month (letting the user
enter an integer in the range of 1 through 12) and the year. The program should then display
the number of days in that month. Here is a sample run of the program:
Enter a month (1-12): 2 [Enter]
Enter a year: 2008 [Enter]
29 days
Explanation / Answer
import java.util.Scanner;
public class MonthDays {
int month, year;
public static void main(String args []){
//create scanner
Scanner input = new Scanner(System.in);
System.out.print("Enter a month (1-12): ");
int month = input.nextInt(); //Moved here to get input after the question is asked
System.out.print("Enter a year: ");
int year = input.nextInt(); //Moved here to get input after the question is asked
int days = getNumberOfDays(month, year);
System.out.println(days+ " Days ");
}
public static int getNumberOfDays(int month,int year){
int days=0;
boolean isLeapYear = (year % 4 == 0 && year % 100 != 0)||(year % 400 == 0);
switch (month){
case 1:
days = 31;
break;
case 2:
if (isLeapYear)
days = 29;
else
days = 28;
break;
case 3:
days = 31;
break;
case 4:
days = 30;
break;
case 5:
days = 31;
break;
case 6:
days = 30;
break;
case 7:
days = 31;
break;
case 8:
days = 31;
break;
case 9:
days = 30;
break;
case 10:
days = 31;
break;
case 11:
days = 30;
break;
case 12:
days = 31;
break;
default:
if ((month < 1)||(month > 12))
System.exit(0);
}
return days;
}
}
Output:
Test 1
Enter a month (1-12): 2
Enter a year: 2008
29 Days
Test 1
Enter a month (1-12): 2
Enter a year: 2009
28 Days
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.