Here you can find the source of compareToMonthByDate(Date startDate, Date endDate)
public static int compareToMonthByDate(Date startDate, Date endDate)
//package com.java2s; //License from project: Apache License import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class Main { public static int compareToMonthByDate(Date startDate, Date endDate) { Calendar startCal = new GregorianCalendar(); Calendar endCal = new GregorianCalendar(); startCal.setTime(startDate);//from ww w .j ava2 s . c om endCal.setTime(endDate); int a = compare(endCal, startCal, 2); return a; } public static int compare(Calendar c1, Calendar c2, int what) { int number = 0; switch (what) { case Calendar.YEAR: number = c1.get(Calendar.YEAR) - c2.get(Calendar.YEAR); break; case Calendar.MONTH: int years = compare(c1, c2, Calendar.YEAR); number = 12 * years + c1.get(Calendar.MONTH) - c2.get(Calendar.MONTH); break; case Calendar.DATE: number = (int) ((c1.getTimeInMillis() - c2.getTimeInMillis()) / (1000 * 60 * 60 * 24)); break; default: number = (int) ((c1.getTimeInMillis() - c2.getTimeInMillis()) / (1000 * 60 * 60 * 24)); break; } return number; } }