How do I get number of days in a month?

Let say you want to know the number of days in a month, or we can say it as the last date of a month. The example below shows you how to obtain the number of days or the date.

package org.kodejava.util;

import java.util.Calendar;

public class MonthDaysExample {
    public static void main(String[] args) {
        // First get an instance of calendar object.
        Calendar calendar = Calendar.getInstance();

        // We'll set the date of the calendar to the following
        // date. We can use constant variable in the calendar
        // for months value (JANUARY - DECEMBER). Be informed that
        // month in Java started from 0 instead of 1.
        int year = 2021;
        int month = Calendar.FEBRUARY;
        int date = 1;
        // We have a new date of 2021-02-01
        calendar.set(year, month, date);

        // Here we get the maximum days for the date specified
        // in the calendar. In this case we want to get the number
        // of days for february 2021
        int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("Max Day: " + maxDay);

        // Here we want to see what is the days for february on
        // a leap year.
        calendar.set(2020, Calendar.FEBRUARY, 1);
        maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("Max Day: " + maxDay);
    }
}

The result of the code snippet above:

Max Day: 28
Max Day: 29

In JDK 8 you can use the new Date Time API to get the number of days in a month. Here an example that show you how to do it: How do I get the length of month represented by a date object?.

Wayan

3 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.