Getting the number of days in a month in Java

You can set the Calendar instance with the highest number possible for months. If the actual number of days in that month is smaller than that maximum, the Calendar instance will automatically change the month (so for example if you would say “the 40th of January 2000″, Calendar will change this to “the 9th of February 2000″). So roll back the Calendar by one day every time until the member month of calendar turns out to be the month you are looking for.

import java.util.*;
public class Main {
   public static void main(String args[]) throws Exception {
      Calendar calendar = Calendar.getInstance();
      calendar.set(2002, Calendar.FEBRUARY, calendar.getMaximum(Calendar.DAY_OF_MONTH));
      while (calendar.get(Calendar.MONTH) != Calendar.FEBRUARY) {
         calendar.add(Calendar.DAY_OF_MONTH, -1);
      System.out.println("Number of days: " + calendar.get(Calendar.DAY_OF_MONTH));


Number of days: 28