Here you can find the source of getAgeInMonths(Date startDate, Date endDate)
public static int getAgeInMonths(Date startDate, Date endDate)
//package com.java2s; /**//from w w w. j av a 2s . co m * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations under * the License. * * The Original Code is OpenELIS code. * * Copyright (C) CIRG, University of Washington, Seattle WA. All Rights Reserved. * */ import java.util.*; public class Main { public static int getAgeInMonths(Date startDate, Date endDate) { Calendar start = new GregorianCalendar(); start.setTime(startDate); int startMOY = start.get(Calendar.MONTH); int startYear = start.get(Calendar.YEAR); Calendar end = new GregorianCalendar(); end.setTime(endDate); int endMOY = end.get(Calendar.MONTH); int endYear = end.get(Calendar.YEAR); // months between Jan. of start year and Jan. of end year int dMons = (endYear - startYear) * 12; // correct to actual months. dMons += endMOY - startMOY; // if the start day of month is after end day of month we have one too // months. if (start.get(Calendar.DAY_OF_MONTH) > end.get(Calendar.DAY_OF_MONTH)) { --dMons; } return dMons; } }