Java tutorial
import java.util.Calendar; public class Main { public static void main(String[] args) throws Exception { Calendar start = Calendar.getInstance(); start.set(2015, 1, 21, 11, 1, 11); Calendar end = Calendar.getInstance(); Calendar clone = (Calendar) start.clone(); int year = elapsed(clone, end, Calendar.YEAR); System.out.println(year + " year"); clone.add(Calendar.YEAR, year); int month = elapsed(clone, end, Calendar.MONTH); clone.add(Calendar.MONTH, month); System.out.println(month + " month"); int date = elapsed(clone, end, Calendar.DATE); clone.add(Calendar.DATE, date); System.out.println(date + " day"); int hour = (int) (end.getTimeInMillis() - clone.getTimeInMillis()) / 3600000; clone.add(Calendar.HOUR, hour); System.out.println(hour + " hour"); int minute = (int) (end.getTimeInMillis() - clone.getTimeInMillis()) / 60000; clone.add(Calendar.MINUTE, minute); System.out.println(minute + " minute"); int millis = (int) (end.getTimeInMillis() - clone.getTimeInMillis()) / 1000; System.out.println(millis + " millis"); } private static int elapsed(Calendar before, Calendar after, int field) { Calendar clone = (Calendar) before.clone(); int elapsed = -1; while (!clone.after(after)) { clone.add(field, 1); elapsed++; } return elapsed; } }