1
2
3
4
5 package comum.util;
6
7
8 import java.text.DateFormat;
9 import java.text.ParseException;
10 import java.text.SimpleDateFormat;
11 import java.util.Calendar;
12 import java.util.Date;
13 import java.util.GregorianCalendar;
14
15
16
17
18
19
20
21
22 public abstract class Data {
23
24 static int timeZone = -3;
25
26
27
28
29
30
31
32
33
34
35 public static Date parseDate(String data){
36 if (data.length()==10)
37 return parseDate(data, "dd/MM/yyyy");
38
39 if (data.indexOf("/")==1){
40 data= "0"+data;
41 }
42 if (data.indexOf("/", 3)==4){
43 String aux = data;
44 data = aux.substring(0, 3)+"0"+aux.substring(3);
45 }
46 if (data.length()==8){
47 String aux = data;
48 data = aux.substring(0, 6)+"20"+aux.substring(6);
49 }
50
51 return parseDate(data, "dd/MM/yyyy");
52 }
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 public static Date parseDate(String data, String formato){
68 java.util.Date date = null;
69 try {
70 DateFormat formatter = new SimpleDateFormat(formato);
71 date = (java.util.Date)formatter.parse(data);
72 } catch (ParseException e) {
73 return null;
74 }
75 return date;
76 }
77
78
79
80
81
82
83
84
85
86
87 public static String parseDateHour(Date data){
88 String formato = "dd/MM/yyyy HH:mm:ss:SSS";
89 String strRetorno= null;
90 SimpleDateFormat formatter = new SimpleDateFormat(formato);
91 if ((data != null))
92 strRetorno = formatter.format((java.util.Date)data);
93 else
94 strRetorno = "";
95 return strRetorno;
96 }
97
98
99
100
101
102
103
104
105
106
107 public static Date parseDateHour(String data){
108 java.util.Date date = null;
109
110 try {
111 DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss:SSS");
112 date = (java.util.Date)formatter.parse(data);
113 } catch (ParseException e) {
114 return null;
115 }
116
117 return date;
118 }
119
120
121
122
123
124
125
126
127
128
129 public static Date parseDateHourDate(String data){
130 Date date = null;
131
132 try {
133 DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss:SSS");
134 date = new Date(formatter.parse(data).getTime());
135 } catch (ParseException e) {
136 return null;
137 }
138
139 return date;
140 }
141
142
143
144
145
146
147
148
149
150 public static String parseDateHourSegundos(Date data){
151 String formato = "mm.ss.SSS";
152 String strRetorno= null;
153 SimpleDateFormat formatter = new SimpleDateFormat(formato);
154 if ((data != null))
155 strRetorno = formatter.format((java.util.Date)data);
156 else
157 strRetorno = "";
158 return strRetorno;
159 }
160
161
162
163
164
165
166
167
168
169
170 public static String parseDate(Date data){
171 String formato = "dd/MM/yyyy";
172 String strRetorno= null;
173 SimpleDateFormat formatter = new SimpleDateFormat(formato);
174 if ((data != null))
175 strRetorno = formatter.format((java.util.Date)data);
176 else
177 strRetorno = "";
178 return strRetorno;
179 }
180
181
182
183
184
185
186
187
188
189
190 public static Date getDataAtual(){
191 Date trialTime = new Date();
192 Calendar calendar = getCalendar(trialTime);
193 return calendar.getTime();
194 }
195
196
197
198
199
200
201
202
203
204
205 public static Calendar getCalendar(Date data){
206
207
208
209
210 return getGregorianCalendar(data);
211 }
212
213
214
215
216
217
218
219
220
221
222
223 public static GregorianCalendar getGregorianCalendar(Date data) {
224 GregorianCalendar gCal = new GregorianCalendar();
225 gCal.setTime(data);
226 return gCal;
227 }
228
229
230
231
232
233
234
235
236
237
238
239 public static Date addDias(int qtdeDias, Date data){
240 Calendar calendar = getCalendar(data);
241 calendar.add(Calendar.DATE, qtdeDias);
242 return calendar.getTime();
243 }
244
245
246
247
248
249
250
251
252
253
254
255 public static Date addMeses(int qtdeMeses, Date data){
256 Calendar calendar = getCalendar(data);
257 calendar.add(Calendar.MONTH, qtdeMeses);
258 return calendar.getTime();
259 }
260
261
262
263
264
265
266
267
268
269
270
271 public static Date addAnos(int qtdeAnos, Date data){
272 Calendar calendar = getCalendar(data);
273 calendar.add(Calendar.MONTH, qtdeAnos);
274 return calendar.getTime();
275 }
276
277
278
279
280
281
282
283
284
285
286
287 public static boolean isFuturo(Date data){
288 if(getDataAtual().after(data))
289 return false;
290 else
291 return true;
292 }
293
294
295
296
297
298
299
300
301
302
303 public static boolean isFuturo(String data){
304 if(getDataAtual().after(parseDate(data)))
305 return false;
306 else
307 return true;
308 }
309
310
311
312
313
314
315
316
317
318
319 public static boolean isPassado(String data){
320 if(isFuturo(data))
321 return false;
322 else
323 return true;
324 }
325
326
327
328
329
330
331
332
333
334
335 public static boolean isPassado(Date data){
336 if(isFuturo(data))
337 return false;
338 else
339 return true;
340 }
341
342
343
344
345
346
347
348
349
350
351 public static String getAbreviaturaMes(int mes){
352 switch(mes){
353 case 1:
354 return "JAN";
355 case 2:
356 return "FEV";
357 case 3:
358 return "MAR";
359 case 4:
360 return "ABR";
361 case 5:
362 return "MAI";
363 case 6:
364 return "JUN";
365 case 7:
366 return "JUL";
367 case 8:
368 return "AGO";
369 case 9:
370 return "SET";
371 case 10:
372 return "OUT";
373 case 11:
374 return "NOV";
375 case 12:
376 return "DEZ";
377 default:
378 return "";
379 }
380 }
381
382
383
384
385
386
387
388
389
390
391
392 public static String getNomeMesExtenso(int mes){
393 switch(mes){
394 case 1:
395 return "Janeiro";
396 case 2:
397 return "Fevereiro";
398 case 3:
399 return "Março";
400 case 4:
401 return "Abril";
402 case 5:
403 return "Maio";
404 case 6:
405 return "Junho";
406 case 7:
407 return "Julho";
408 case 8:
409 return "Agosto";
410 case 9:
411 return "Setembro";
412 case 10:
413 return "Outubro";
414 case 11:
415 return "Novembro";
416 case 12:
417 return "Dezembro";
418 default:
419 return "";
420 }
421 }
422
423
424
425
426
427
428
429
430
431
432 public static int getDia(Date data) {
433 Calendar calendar = getCalendar(data);
434 return calendar.get(Calendar.DAY_OF_MONTH);
435 }
436
437
438
439
440
441
442
443
444
445
446 public static int getMes(Date data) {
447 Calendar calendar = getCalendar(data);
448 return calendar.get(Calendar.MONTH);
449 }
450
451
452
453
454
455
456
457
458
459
460 public static int getAno(Date data) {
461 Calendar calendar = getCalendar(data);
462 return calendar.get(Calendar.YEAR);
463 }
464
465
466
467
468
469
470
471
472
473
474 public static String getHorario(Date data) {
475 Calendar calendar = getCalendar(data);
476 StringBuffer horaRetorno = new StringBuffer();
477 StringBuffer minutoRetorno = new StringBuffer();
478
479 int hora = calendar.get(Calendar.HOUR_OF_DAY);
480 int minuto = calendar.get(Calendar.MINUTE);
481
482 if( hora < 10 ) {
483 horaRetorno.append("0").append(hora);
484 } else {
485 horaRetorno.append(hora);
486 }
487
488 if( minuto < 10 ) {
489 minutoRetorno.append("0").append(minuto);
490 } else {
491 minutoRetorno.append(minuto);
492 }
493
494 return (horaRetorno.append(":").append(minutoRetorno)).toString();
495 }
496
497
498
499
500
501
502
503
504
505
506 public static String getHoraAtual(boolean comSeparador) {
507 Calendar cal = Calendar.getInstance();
508 StringBuffer hh = new StringBuffer();
509 StringBuffer mm = new StringBuffer();
510 StringBuffer ss = new StringBuffer();
511 hh.append(cal.get(Calendar.HOUR_OF_DAY));
512 mm.append(cal.get(Calendar.MINUTE));
513 ss.append(cal.get(Calendar.SECOND));
514
515 if(mm.length() < 2)
516 mm.insert(0, "0");
517 if(hh.length() < 2)
518 hh.insert(0, "0");
519 if(ss.length() < 2)
520 ss.insert(0, "0");
521
522 if(comSeparador) {
523 return (hh.append(":").append(mm).append(":").append(ss)).toString();
524 }
525 else {
526 return (hh.append(mm).append(ss)).toString();
527 }
528 }
529
530
531
532
533
534
535
536
537
538
539 public static int getUltimoDiaMes(Date data){
540 Calendar calendar = getCalendar(data);
541 return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
542 }
543
544
545
546
547
548
549
550
551
552
553
554 public static String getDiaSemanaNome(Date data) {
555 switch ((getCalendar(data)).get(Calendar.DAY_OF_WEEK)) {
556 case 1: return "Domingo";
557 case 2: return "Segunda";
558 case 3: return "Terça";
559 case 4: return "Quarta";
560 case 5: return "Quinta";
561 case 6: return "Sexta";
562 case 7: return "Sábado";
563 default: return "";
564 }
565 }
566
567
568
569
570
571
572
573
574
575
576
577 public static String getDiaSemanaNomeExtenso(Date data) {
578 switch ((getCalendar(data)).get(Calendar.DAY_OF_WEEK)) {
579 case 1: return "Domingo";
580 case 2: return "Segunda-feira";
581 case 3: return "Terça-feira";
582 case 4: return "Quarta-feira";
583 case 5: return "Quinta-feira";
584 case 6: return "Sexta-feira";
585 case 7: return "Sábado";
586 default: return "";
587 }
588 }
589
590
591
592
593
594
595
596
597
598
599 public static String parseDateHourMinuteSecond(Date data){
600 String formato = "dd/MM/yyyy HH:mm:ss";
601 String strRetorno= null;
602 SimpleDateFormat formatter = new SimpleDateFormat(formato);
603 if ((data != null))
604 strRetorno = formatter.format((java.util.Date)data);
605 else
606 strRetorno = "";
607 return strRetorno;
608 }
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625 public static int compareAnoMesDia(Date data1, Date data2){
626
627 if (data1 == null || data2 == null )
628 throw new NullPointerException();
629
630
631
632
633 if (Data.getAno(data1) > Data.getAno(data2) ) {
634 return 1;
635 } else if (Data.getAno(data1) < Data.getAno(data2) ){
636 return -1;
637 }
638
639 if (Data.getMes(data1) > Data.getMes(data2) ) {
640 return 1;
641 } else if (Data.getMes(data1) < Data.getMes(data2) ){
642 return -1;
643 }
644
645 if (Data.getDia(data1) > Data.getDia(data2) ) {
646 return 1;
647 } else if (Data.getDia(data1) < Data.getDia(data2) ){
648 return -1;
649 }
650
651
652 return 0;
653 }
654 }