Here you can find the source of calculaIdadeMesAno(Date dDataNasc, String type)
Parameter | Description |
---|---|
dDataNasc | a parameter |
type | - pode ser "SHORT" ou "LONG" (para determinar se saira: "19a 13m" ou "19 anos 13 meses" |
public static String calculaIdadeMesAno(Date dDataNasc, String type)
//package com.java2s; //License from project: Open Source License import java.util.Calendar; import java.util.Date; public class Main { /**/*w w w. j a va 2 s .c o m*/ * Faz o calculo da idade com base na data passada como parametro (retorna apenas mes e ano) * * @param dDataNasc * @param type * - pode ser "SHORT" ou "LONG" (para determinar se saira: "19a 13m" ou "19 anos 13 meses" * @return Retorna apenas mes e ano */ public static String calculaIdadeMesAno(Date dDataNasc, String type) { if (dDataNasc == null) { return ""; } int anoResult = 0; int mesResult = 0; int diaResult = 0; Calendar hoje = Calendar.getInstance(); Date now = hoje.getTime(); String retorno = ""; String strAno; String strAnos; String strMes; String strMeses; int anoHoje = getYear(now); int anoDataParm = getYear(dDataNasc); int mesHoje = getMonth(now); int mesDataParm = getMonth(dDataNasc); int diaHoje = getDay(now); int diaDataParm = getDay(dDataNasc); if ("SHORT".equalsIgnoreCase(type)) { strAno = strAnos = "a"; strMes = strMeses = "m"; } else { strAno = " ano"; strAnos = " anos"; strMes = " mes"; strMeses = " meses"; } 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; } diaResult = (diaHoje - diaDataParm); if (diaResult < 0) { mesResult = mesResult - 1; diaResult = 30 + diaResult; } retorno = ""; if (anoResult > 0) { if (anoResult == 1) { retorno = "1" + strAno + " "; } else { retorno = String.valueOf(anoResult) + strAnos + " "; } } if (mesResult > 0) { if (mesResult == 1) { retorno = retorno + "1" + strMes + " "; } else { retorno = retorno + String.valueOf(mesResult) + strMeses + " "; } } return retorno; } /** * 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); } }