Here you can find the source of calculaIdadeEmMeses(Date dDataNasc)
Parameter | Description |
---|---|
dDataNasc | a parameter |
public static Integer calculaIdadeEmMeses(Date dDataNasc)
//package com.java2s; //License from project: Open Source License import java.util.Calendar; import java.util.Date; public class Main { /**/* w ww. j a v a 2 s . c om*/ * Faz o calculo da idade com base na data passada como parametro. retorna apenas os meses retorna um numero representando a quantidade de meses. * * @param dDataNasc * @return */ public static Integer calculaIdadeEmMeses(Date dDataNasc) { if (dDataNasc == null) { return new Integer(0); } int anoResult = 0; int mesResult = 0; Calendar hoje = Calendar.getInstance(); Date now = hoje.getTime(); int anoHoje = getYear(now); int anoDataParm = getYear(dDataNasc); int mesHoje = getMonth(now); int mesDataParm = getMonth(dDataNasc); int diaHoje = getDay(now); int diaDataParm = getDay(dDataNasc); anoResult = anoHoje - anoDataParm; if ((mesHoje < mesDataParm) || ((mesHoje == mesDataParm) && (diaHoje < diaDataParm))) { anoResult = anoResult - 1; } mesResult = mesHoje - mesDataParm; if ((mesResult < 0) || ((mesHoje == mesDataParm) && (diaHoje < diaDataParm))) { mesResult = mesResult + 12; } if (anoResult > 0) { if (anoResult == 1) { return new Integer((1 * 12) + mesResult); } else { return new Integer((anoResult * 12) + mesResult); } } else { return new Integer(mesResult); } } public static Integer calculaIdadeEmMeses(Date dDataNasc, Date dataRef) { if (dDataNasc == null) { return new Integer(0); } if (dataRef == null) { return new Integer(0); } int anoResult = 0; int mesResult = 0; Date dataReferencia = dataRef; int anoHoje = getYear(dataReferencia); int anoDataParm = getYear(dDataNasc); int mesHoje = getMonth(dataReferencia); int mesDataParm = getMonth(dDataNasc); int diaHoje = getDay(dataReferencia); int diaDataParm = getDay(dDataNasc); anoResult = anoHoje - anoDataParm; if ((mesHoje < mesDataParm) || ((mesHoje == mesDataParm) && (diaHoje < diaDataParm))) { anoResult = anoResult - 1; } mesResult = mesHoje - mesDataParm; if ((mesResult < 0) || ((mesHoje == mesDataParm) && (diaHoje < diaDataParm))) { mesResult = mesResult + 12; } if (anoResult > 0) { if (anoResult == 1) { return new Integer((1 * 12) + mesResult); } else { return new Integer((anoResult * 12) + mesResult); } } else { return new Integer(mesResult); } } /** * Pega o ano de uma data * * @param data * @return */ public static int getYear(Date data) { Calendar c = Calendar.getInstance(); c.setTime(data); return c.get(Calendar.YEAR); } /** * Pega o mes de uma data * * @param data * @return */ public static int getMonth(Date data) { Calendar c = Calendar.getInstance(); c.setTime(data); return c.get(Calendar.MONTH) + 1; } /** * Pega o dia de uma data * * @param data * @return */ public static int getDay(Date data) { Calendar c = Calendar.getInstance(); c.setTime(data); return c.get(Calendar.DAY_OF_MONTH); } }