Blame |
Last modification |
View Log
| Download
| RSS feed
package br.com.ec.controller.util;
import java.util.Calendar;
import java.util.Date;
public class IdadeUtil
{
public static String calcularIdade
(Date data
) {
Integer anos =
0;
Integer meses =
0;
Integer dias =
0;
Calendar dataAtual
;
Calendar dataNascimento
;
dataAtual =
Calendar.
getInstance();
dataNascimento =
Calendar.
getInstance();
dataNascimento.
setTime(data
);
anos = anos +
(dataAtual.
get(Calendar.
YEAR) - dataNascimento.
get(Calendar.
YEAR));
meses = meses +
(dataAtual.
get(Calendar.
MONTH) - dataNascimento.
get(Calendar.
MONTH));
dias = dias +
(dataAtual.
get(Calendar.
DAY_OF_MONTH) - dataNascimento.
get(Calendar.
DAY_OF_MONTH));
if (dataAtual.
get(Calendar.
MONTH) == dataNascimento.
get(Calendar.
MONTH)) {
if (dataAtual.
get(Calendar.
DAY_OF_MONTH) < dataNascimento.
get(Calendar.
DAY_OF_MONTH)) {
dias =
30 + dias
;
meses =
12 + meses
;
anos = anos -
1;
}
} else if (dataAtual.
get(Calendar.
MONTH) < dataNascimento.
get(Calendar.
MONTH)) {
if (dataAtual.
get(Calendar.
DAY_OF_MONTH) >= dataNascimento.
get(Calendar.
DAY_OF_MONTH)) {
meses =
12 + meses
;
anos = anos -
1;
} else if (dataAtual.
get(Calendar.
DAY_OF_MONTH) < dataNascimento.
get(Calendar.
DAY_OF_MONTH)) {
dias =
30 + dias
;
meses =
12 + meses
;
anos = anos -
1;
}
} else if (dataAtual.
get(Calendar.
MONTH) > dataNascimento.
get(Calendar.
MONTH)) {
if (dataAtual.
get(Calendar.
DAY_OF_MONTH) < dataNascimento.
get(Calendar.
DAY_OF_MONTH)) {
dias =
30 + dias
;
meses = meses -
1;
}
}
return formatarIdade
(formatar
(anos, meses, dias
));
}
public static String calcularIdadeSimplificada
(Date data
) {
Integer anos =
0;
Integer meses =
0;
Integer dias =
0;
Calendar dataAtual
;
Calendar dataNascimento
;
dataAtual =
Calendar.
getInstance();
dataNascimento =
Calendar.
getInstance();
dataNascimento.
setTime(data
);
anos = anos +
(dataAtual.
get(Calendar.
YEAR) - dataNascimento.
get(Calendar.
YEAR));
meses = meses +
(dataAtual.
get(Calendar.
MONTH) - dataNascimento.
get(Calendar.
MONTH));
dias = dias +
(dataAtual.
get(Calendar.
DAY_OF_MONTH) - dataNascimento.
get(Calendar.
DAY_OF_MONTH));
if (dataAtual.
get(Calendar.
MONTH) == dataNascimento.
get(Calendar.
MONTH)) {
if (dataAtual.
get(Calendar.
DAY_OF_MONTH) < dataNascimento.
get(Calendar.
DAY_OF_MONTH)) {
dias =
30 + dias
;
meses =
12 + meses
;
anos = anos -
1;
}
} else if (dataAtual.
get(Calendar.
MONTH) < dataNascimento.
get(Calendar.
MONTH)) {
if (dataAtual.
get(Calendar.
DAY_OF_MONTH) >= dataNascimento.
get(Calendar.
DAY_OF_MONTH)) {
meses =
12 + meses
;
anos = anos -
1;
} else if (dataAtual.
get(Calendar.
DAY_OF_MONTH) < dataNascimento.
get(Calendar.
DAY_OF_MONTH)) {
dias =
30 + dias
;
meses =
12 + meses
;
anos = anos -
1;
}
} else if (dataAtual.
get(Calendar.
MONTH) > dataNascimento.
get(Calendar.
MONTH)) {
if (dataAtual.
get(Calendar.
DAY_OF_MONTH) < dataNascimento.
get(Calendar.
DAY_OF_MONTH)) {
dias =
30 + dias
;
meses = meses -
1;
}
}
return formatarIdadeSimplificada
(formatar
(anos, meses, dias
));
}
/** Método responsável por formatar uma idade no formato 1 10 6.
* Concatena-se 0 se o valor menor que 10 e logo apos o numero adicionasse espaço.
*
* @return Data formatada para o formato 00 00 00.
*/
private static String formatar
(Integer ano,
Integer mes,
Integer dia
) {
String idade =
"";
if (ano.
intValue() < 10) {
idade =
(new StringBuilder()).
append(idade
).
append("0").
append(ano
).
append(" ").
toString();
} else {
idade =
(new StringBuilder()).
append(idade
).
append(ano
).
append(" ").
toString();
}
if (mes.
intValue() < 10) {
idade =
(new StringBuilder()).
append(idade
).
append("0").
append(mes
).
append(" ").
toString();
} else {
idade =
(new StringBuilder()).
append(idade
).
append(mes
).
append(" ").
toString();
}
if (dia.
intValue() < 10) {
idade =
(new StringBuilder()).
append(idade
).
append("0").
append(dia
).
append(" ").
toString();
} else {
idade =
(new StringBuilder()).
append(idade
).
append(dia
).
append(" ").
toString();
}
return idade
;
}
/** Pega os valores 00 00 00 e coloca Ano(s) Mes(es) Dia(s)
*/
private static String formatarIdade
(String ida
) {
String idade =
"";
String anos =
null;
String meses =
null;
String dias =
null;
String CharArray
[] = ida.
split(" ");
anos = CharArray
[0];
meses = CharArray
[1];
dias = CharArray
[2];
if (!anos.
equals("00")) {
if (anos.
equals("01")) {
idade = idade.
concat((new StringBuilder()).
append(anos
).
append(" Ano ").
toString());
} else {
idade = idade.
concat((new StringBuilder()).
append(anos
).
append(" Anos ").
toString());
}
}
if (!meses.
equals("00")) {
if (meses.
equals("01")) {
idade = idade.
concat((new StringBuilder()).
append(meses
).
append(" Mês ").
toString());
} else {
idade = idade.
concat((new StringBuilder()).
append(meses
).
append(" Meses ").
toString());
}
}
if (!dias.
equals("00")) {
if (dias.
equals("01")) {
idade = idade.
concat((new StringBuilder()).
append(dias
).
append(" Dia ").
toString());
} else {
idade = idade.
concat((new StringBuilder()).
append(dias
).
append(" Dias").
toString());
}
}
return idade
;
}
private static String formatarIdadeSimplificada
(String ida
) {
String idade =
"";
String anos =
null;
String CharArray
[] = ida.
split(" ");
anos = CharArray
[0];
if (!anos.
equals("00")) {
if (anos.
equals("01")) {
idade = idade.
concat((new StringBuilder()).
append(anos
).
append(" Ano ").
toString());
} else {
idade = idade.
concat((new StringBuilder()).
append(anos
).
append(" Anos ").
toString());
}
}
return idade
;
}
}