Write a java program to find number of days in a month

Given two inputs year and month (Month is coded as Jan=0, Feb=1, Mar=2 …), write a program to find out the total number of days in the given month for the given year.

Input and Output Format

  • Input consists of 2 integers that correspond to the year and month code.
  • The output consists of an integer that corresponds to the number of days in the month in the given year.

Sample Input:

2000

1

Sample Output:

29

Number of days in a month in Java

Following are the steps to find the number of days in a month in Java:

  • Input year and month from the user.
  • Pass it to the display() method.
  • Inside the method, first, get the instance of the Calendar object.
  • We will set the year and month to the calendar instance.
  • Now, get the maximum days for the year and months specified.
  • At last, return the number of days in a month.
import java.util.*;

public class Main {
  public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    int year = sc.nextInt();
    int month = sc.nextInt();
    System.out.println(display(year, month));

  }

  public static int display(int year, int month) {
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, year);
    cal.set(Calendar.MONTH, month);
    int DAY_OF_MONTH = cal.getActualMaximum(cal.DAY_OF_MONTH);
    return DAY_OF_MONTH;
  }
}

Note: In java.util.Calendar class, the month starts from 0 and not 1.

Output

Print Days in a month using if-else

Here, we will use the if-else statement. Following are the steps:

  • Input month and year from the user.
  • Pass them to the display() method.
  • Inside the method, Declare and initialize variable no_of_days_in_month to 0.
  • Check the input with months (like if it is 1 then it is January) and then assign a number of days to the no_of_days_in_month variable.
  • At last, just return no_of_days_in_month.
package com.date;

import java.util.Scanner;

public class Practice2Application {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int year = scanner.nextInt();
        int month = scanner.nextInt();
        System.out.println(display(year,month));
    }

    private static int display(int year, int month) {
        int no_of_days_in_month = 0;
        if(month==1){
            no_of_days_in_month = 31;
        }
        else if(month==2){
            if((year%400==0) || ((year%100!=0) && (year%4==0))){
                no_of_days_in_month = 29;
            }
            else {
                no_of_days_in_month = 28;
            }
        }
        else if(month==3){
            no_of_days_in_month = 31;
        }
        else if(month==4){
            no_of_days_in_month = 30;
        }
        else if(month==5){
            no_of_days_in_month = 31;
        }
        else if(month==6){
            no_of_days_in_month = 30;
        }
        else if(month==7){
            no_of_days_in_month = 31;
        }
        else if(month==8){
            no_of_days_in_month = 31;
        }
        else if(month==9){
            no_of_days_in_month = 30;
        }
        else if(month==10){
            no_of_days_in_month = 31;
        }
        else if(month==11){
            no_of_days_in_month = 30;
        }
        else if(month==12){
            no_of_days_in_month = 31;
        }
        return no_of_days_in_month;
    }

}

Output

Program to find days in a month using switch case

Following are the steps we shall see:

  • Input month and year from the user.
  • Pass them to the display() method.
  • Inside the method, Declare and initialize variable no_of_days_in_month to 0.
  • Use the switch case and check the input with months (like if it is 1 then it is January) and then assign a number of days to the no_of_days_in_month variable.
  • At last, just return no_of_days_in_month.
package com.date;

import java.util.Scanner;

public class Practice3Application {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int year = scanner.nextInt();
        int month = scanner.nextInt();
        System.out.println(display(year, month));
    }

    private static int display(int year, int month) {
        int no_of_days_in_month = 0;
        switch (month){
            case 1:
                no_of_days_in_month = 31;
                break;
            case 2:
                if((year%400==0) || ((year%100!=0) && (year%4==0))){
                    no_of_days_in_month = 29;
                    break;
                }
                else {
                    no_of_days_in_month = 28;
                    break;
                }
            case 3:
                no_of_days_in_month = 31;
                break;
            case 4:
                no_of_days_in_month = 30;
                break;
            case 5:
                no_of_days_in_month = 31;
                break;
            case 6:
                no_of_days_in_month = 30;
                break;
            case 7:
                no_of_days_in_month = 31;
                break;
            case 8:
                no_of_days_in_month = 31;
                break;
            case 9:
                no_of_days_in_month = 30;
                break;
            case 10:
                no_of_days_in_month = 31;
                break;
            case 11:
                no_of_days_in_month = 30;
                break;
            case 12:
                no_of_days_in_month = 31;
                break;
        }
        return no_of_days_in_month;
    }
}

Output

Thus, this is how we can find out the number of days in a particular year & month.