Java Day End getNumYears(Date dStart, Date dEnd)

Here you can find the source of getNumYears(Date dStart, Date dEnd)

Description

Gets the number of years between two date objects

License

Open Source License

Parameter

Parameter Description
dStart Start Date
dEnd End Date

Return

Number of year between

Declaration

public static int getNumYears(Date dStart, Date dEnd) 

Method Source Code

//package com.java2s;
/**/*  w  w w. j  av  a 2 s . c o m*/
 *
 * Copyright (c) 2005-2012. Centre for Research on Inner City Health, St. Michael's Hospital, Toronto. All Rights Reserved.
 * This software is published under the GPL GNU General Public License.
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *
 * This software was written for
 * Centre for Research on Inner City Health, St. Michael's Hospital,
 * Toronto, Ontario, Canada
 */

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class Main {
    /**
     * Gets the number of years between two date objects
     * @param dStart Start Date
     * @param dEnd End Date
     * @return Number of year between
     */
    public static int getNumYears(Date dStart, Date dEnd) {
        GregorianCalendar now = new GregorianCalendar();
        now.setTime(dEnd);
        int curYear = now.get(Calendar.YEAR);
        int curMonth = now.get(Calendar.MONTH) + 1;
        int curDay = now.get(Calendar.DAY_OF_MONTH);

        GregorianCalendar birthDate = new GregorianCalendar();
        birthDate.setTime(dStart);
        int birthYear = birthDate.get(Calendar.YEAR);
        int birthMonth = birthDate.get(Calendar.MONTH) + 1;
        int birthDay = birthDate.get(5);

        int ageInYears = curYear - birthYear;

        if (curMonth > birthMonth || curMonth == birthMonth && curDay >= birthDay) {
            ageInYears = curYear - birthYear;
        } else {
            ageInYears = curYear - birthYear - 1;
        }
        return ageInYears;
    }
}

Related

  1. getNextEndDate(Date date, int offset)
  2. getNextSendTime(Date sendDate, Date start)
  3. getNumberOfDaysBetweenDates(Date beginDate, Date endDate)
  4. getNumberOfMonthsBetween(final Date begin, final Date end)
  5. getNumMonths(Date dStart, Date dEnd)
  6. getSCDEndDate()
  7. getSecondSemesterEndDate(Integer year)
  8. getSendTime(Date sendDate, Date start, Date end)
  9. getStartAndEndDate(Date d)