Here you can find the source of compare(Calendar c1, Calendar c2, int what)
public static int compare(Calendar c1, Calendar c2, int what)
//package com.java2s; //License from project: Apache License import java.util.Calendar; public class Main { 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:/*from w w w . j ava2 s. c om*/ number = (int) ((c1.getTimeInMillis() - c2.getTimeInMillis()) / (1000 * 60 * 60 * 24)); break; } return number; } }