class ConsultaDescricaoCirurgicaPolRN extends BaseBusiness {

	public String buscarIdade(Date dtNascimento, Date dataCirurgia) {
		
		String tempo = "anos";
		String tempoMes = "meses";
		Integer idadeMes = null;
		String idadeFormat = null;
		if (dtNascimento != null) {
			Calendar dataNascimento = new GregorianCalendar();
			dataNascimento.setTime(dtNascimento);
			Calendar dataCalendario = new GregorianCalendar();
			dataCalendario.setTime(dataCirurgia);
			// Obtém a idade baseado no ano
			Integer idadeNum = dataCalendario.get(Calendar.YEAR)
					- dataNascimento.get(Calendar.YEAR);
			// dataNascimento.add(Calendar.YEAR, idadeNum);

			if (dataCalendario.get(Calendar.MONTH) < dataNascimento
					.get(Calendar.MONTH)) {
				idadeNum--;
			} else if (dataCalendario.get(Calendar.MONTH) == dataNascimento
					.get(Calendar.MONTH)
					&& dataCalendario.get(Calendar.DAY_OF_MONTH) < dataNascimento
							.get(Calendar.DAY_OF_MONTH)) {
				idadeNum--;
			}

			if (idadeNum == 1) {
				tempo = "ano";
			}
			
			if (dataCalendario.get(Calendar.MONTH) < dataNascimento
					.get(Calendar.MONTH)) {
				idadeMes = dataCalendario.get(Calendar.MONTH)
						+ (11 - dataNascimento.get(Calendar.MONTH));
			} else {
				idadeMes = dataCalendario.get(Calendar.MONTH)
						- dataNascimento.get(Calendar.MONTH);
				if (dataCalendario.get(Calendar.DAY_OF_MONTH) < dataNascimento
						.get(Calendar.DAY_OF_MONTH)) {
					idadeMes--;
				}
			}
			
			if(idadeMes<0){
				if (12+(idadeMes) == 1) {
					tempoMes = 12+(idadeMes) + " mês";
				} else {
					tempoMes = 12+(idadeMes) + " meses";
				}	
			}else{
				if (idadeMes < 2) {
					tempoMes = idadeMes + " mês";
				} else {
					tempoMes = idadeMes + " meses";
				}
			}

			if (idadeNum < 1) {
				if (dataCalendario.get(Calendar.DAY_OF_MONTH) < dataNascimento.get(Calendar.DAY_OF_MONTH)) {
					int lastDayMonth = dataNascimento.getActualMaximum(Calendar.DAY_OF_MONTH);
					idadeNum = (lastDayMonth - dataNascimento.get(Calendar.DAY_OF_MONTH))
							+ dataCalendario.get(Calendar.DAY_OF_MONTH);
				} else {
					idadeNum = dataCalendario.get(Calendar.DAY_OF_MONTH) - dataNascimento.get(Calendar.DAY_OF_MONTH);
				}
				idadeNum++;
				if (idadeNum == 1) {
					tempo = "dia";
				} else {
					tempo = "dias";
				}
				idadeFormat = tempoMes + " " + idadeNum + " " + tempo;
			}else{
				idadeFormat = idadeNum + " " + tempo + " " + tempoMes;
			}
		}
		return idadeFormat;
	}

}