Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
106 espaco 1
package br.com.ec.controller.util;
2
 
3
import java.util.Calendar;
4
import java.util.Date;
5
 
6
public class IdadeUtil {
7
 
8
        public static String calcularIdade(Date data) {
9
                Integer anos = 0;
10
                Integer meses = 0;
11
                Integer dias = 0;
12
                Calendar dataAtual;
13
                Calendar dataNascimento;
14
                dataAtual = Calendar.getInstance();
15
                dataNascimento = Calendar.getInstance();
16
                dataNascimento.setTime(data);
17
                anos = anos + (dataAtual.get(Calendar.YEAR) - dataNascimento.get(Calendar.YEAR));
18
                meses = meses + (dataAtual.get(Calendar.MONTH) - dataNascimento.get(Calendar.MONTH));
19
                dias = dias + (dataAtual.get(Calendar.DAY_OF_MONTH) - dataNascimento.get(Calendar.DAY_OF_MONTH));
20
                if (dataAtual.get(Calendar.MONTH) == dataNascimento.get(Calendar.MONTH)) {
21
                        if (dataAtual.get(Calendar.DAY_OF_MONTH) < dataNascimento.get(Calendar.DAY_OF_MONTH)) {
22
                                dias = 30 + dias;
23
                                meses = 12 + meses;
24
                                anos = anos - 1;
25
                        }
26
                } else if (dataAtual.get(Calendar.MONTH) < dataNascimento.get(Calendar.MONTH)) {
27
                        if (dataAtual.get(Calendar.DAY_OF_MONTH) >= dataNascimento.get(Calendar.DAY_OF_MONTH)) {
28
                                meses = 12 + meses;
29
                                anos = anos - 1;
30
                        } else if (dataAtual.get(Calendar.DAY_OF_MONTH) < dataNascimento.get(Calendar.DAY_OF_MONTH)) {
31
                                dias = 30 + dias;
32
                                meses = 12 + meses;
33
                                anos = anos - 1;
34
                        }
35
                } else if (dataAtual.get(Calendar.MONTH) > dataNascimento.get(Calendar.MONTH)) {
36
                        if (dataAtual.get(Calendar.DAY_OF_MONTH) < dataNascimento.get(Calendar.DAY_OF_MONTH)) {
37
                                dias = 30 + dias;
38
                                meses = meses - 1;
39
                        }
40
                }
41
 
42
                return formatarIdade(formatar(anos, meses, dias));
43
        }
44
 
45
        public static String calcularIdadeSimplificada(Date data) {
46
                Integer anos = 0;
47
                Integer meses = 0;
48
                Integer dias = 0;
49
                Calendar dataAtual;
50
                Calendar dataNascimento;
51
                dataAtual = Calendar.getInstance();
52
                dataNascimento = Calendar.getInstance();
53
                dataNascimento.setTime(data);
54
                anos = anos + (dataAtual.get(Calendar.YEAR) - dataNascimento.get(Calendar.YEAR));
55
                meses = meses + (dataAtual.get(Calendar.MONTH) - dataNascimento.get(Calendar.MONTH));
56
                dias = dias + (dataAtual.get(Calendar.DAY_OF_MONTH) - dataNascimento.get(Calendar.DAY_OF_MONTH));
57
                if (dataAtual.get(Calendar.MONTH) == dataNascimento.get(Calendar.MONTH)) {
58
                        if (dataAtual.get(Calendar.DAY_OF_MONTH) < dataNascimento.get(Calendar.DAY_OF_MONTH)) {
59
                                dias = 30 + dias;
60
                                meses = 12 + meses;
61
                                anos = anos - 1;
62
                        }
63
                } else if (dataAtual.get(Calendar.MONTH) < dataNascimento.get(Calendar.MONTH)) {
64
                        if (dataAtual.get(Calendar.DAY_OF_MONTH) >= dataNascimento.get(Calendar.DAY_OF_MONTH)) {
65
                                meses = 12 + meses;
66
                                anos = anos - 1;
67
                        } else if (dataAtual.get(Calendar.DAY_OF_MONTH) < dataNascimento.get(Calendar.DAY_OF_MONTH)) {
68
                                dias = 30 + dias;
69
                                meses = 12 + meses;
70
                                anos = anos - 1;
71
                        }
72
                } else if (dataAtual.get(Calendar.MONTH) > dataNascimento.get(Calendar.MONTH)) {
73
                        if (dataAtual.get(Calendar.DAY_OF_MONTH) < dataNascimento.get(Calendar.DAY_OF_MONTH)) {
74
                                dias = 30 + dias;
75
                                meses = meses - 1;
76
                        }
77
                }
78
 
79
                return formatarIdadeSimplificada(formatar(anos, meses, dias));
80
        }
81
 
82
        /** Método responsável por formatar uma idade no formato 1 10 6.
83
         *  Concatena-se 0 se o valor menor que 10 e logo apos o numero adicionasse espaço.
84
         *
85
         *  @return Data formatada para o formato 00 00 00.
86
         */
87
         private static String formatar(Integer ano, Integer mes, Integer dia) {
88
                String idade = "";
89
                if (ano.intValue() < 10) {
90
                        idade = (new StringBuilder()).append(idade).append("0").append(ano).append(" ").toString();
91
                } else {
92
                        idade = (new StringBuilder()).append(idade).append(ano).append(" ").toString();
93
                }
94
                if (mes.intValue() < 10) {
95
                        idade = (new StringBuilder()).append(idade).append("0").append(mes).append(" ").toString();
96
                } else {
97
                        idade = (new StringBuilder()).append(idade).append(mes).append(" ").toString();
98
                }
99
                if (dia.intValue() < 10) {
100
                        idade = (new StringBuilder()).append(idade).append("0").append(dia).append(" ").toString();
101
                } else {
102
                        idade = (new StringBuilder()).append(idade).append(dia).append(" ").toString();
103
                }
104
                return idade;
105
         }
106
 
107
         /** Pega os valores 00 00 00 e coloca Ano(s) Mes(es) Dia(s)
108
          */
109
         private static String formatarIdade(String ida) {
110
                 String idade = "";
111
                 String anos = null;
112
                 String meses = null;
113
                 String dias = null;
114
                 String CharArray[] = ida.split(" ");
115
                 anos = CharArray[0];
116
                 meses = CharArray[1];
117
                 dias = CharArray[2];
118
                 if (!anos.equals("00")) {
119
                         if (anos.equals("01")) {
120
                                 idade = idade.concat((new StringBuilder()).append(anos).append(" Ano ").toString());
121
                         } else {
122
                                 idade = idade.concat((new StringBuilder()).append(anos).append(" Anos ").toString());
123
                         }
124
                 }
125
 
126
                 if (!meses.equals("00")) {
127
                         if (meses.equals("01")) {
128
                                 idade = idade.concat((new StringBuilder()).append(meses).append(" Mês ").toString());
129
                         } else {
130
                                 idade = idade.concat((new StringBuilder()).append(meses).append(" Meses ").toString());
131
                         }
132
                 }
133
                 if (!dias.equals("00")) {
134
                         if (dias.equals("01")) {
135
                                 idade = idade.concat((new StringBuilder()).append(dias).append(" Dia ").toString());
136
                         } else {
137
                                 idade = idade.concat((new StringBuilder()).append(dias).append(" Dias").toString());
138
                         }
139
                 }
140
 
141
                 return idade;
142
         }
143
 
144
         private static String formatarIdadeSimplificada(String ida) {
145
                 String idade = "";
146
                 String anos = null;
147
                 String CharArray[] = ida.split(" ");
148
                 anos = CharArray[0];
149
                 if (!anos.equals("00")) {
150
                         if (anos.equals("01")) {
151
                                 idade = idade.concat((new StringBuilder()).append(anos).append(" Ano ").toString());
152
                         } else {
153
                                 idade = idade.concat((new StringBuilder()).append(anos).append(" Anos ").toString());
154
                         }
155
                 }
156
                 return idade;
157
         }
158
}