Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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