KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > javabb > infra > DateUtil


1 package org.javabb.infra;
2
3 import java.text.SimpleDateFormat JavaDoc;
4 import java.util.Calendar JavaDoc;
5 import java.util.Date JavaDoc;
6 import java.util.GregorianCalendar JavaDoc;
7 import java.util.Locale JavaDoc;
8
9 /**
10  * @author Dalton Camargo - <a HREF="mailto:dalton@ag2.com.br">dalton@ag2.com.br
11  * </a> <Br>
12  * AG2 - Agencia de Inteligencia Digital S.A. <Br>
13  * <a HREF="http://www.ag2.com.br">http://www.ag2.com.br </a> <Br>
14  * Nosso <i>www </i> e mais <b>inteligente </b>!
15  */

16 /*
17 $Id: DateUtil.java,v 1.9.8.2 2006/04/17 17:47:15 daltoncamargo Exp $
18 */

19
20 /*http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html*/
21 public class DateUtil {
22
23     public static SimpleDateFormat JavaDoc RFC822DATEFORMAT = new SimpleDateFormat JavaDoc("EEE', 'dd' 'MMM' 'yyyy' 'HH:mm:ss' 'Z", Locale.US);
24
25     
26     /**
27      * Insere a hora e os minutos em uma Data
28      * @param dateParam - Data a ser manipulada
29      * @param hourMinute - Hora a ser incluída
30      * @param format - separador entre hora e minuto, ex: 21:10 ou 21-20
31      * @return - Retorna uma data com a hora e os minutos setados
32      * @throws Exception - Caso aconteça algum erro, uma excessão é lançada
33      */

34     public static Date JavaDoc setDateHourMinute(Date JavaDoc dateParam, String JavaDoc hourMinute, String JavaDoc format) throws Exception JavaDoc{
35         String JavaDoc[] arrHourMinute = hourMinute.split(format);
36         Calendar JavaDoc dteComp = Calendar.getInstance();
37         dteComp.setTime(dateParam);
38         dteComp.set(Calendar.HOUR_OF_DAY, Integer.parseInt(arrHourMinute[0]));
39         dteComp.set(Calendar.MINUTE, Integer.parseInt(arrHourMinute[1]));
40         return dteComp.getTime();
41     }
42     
43     /**
44      * Insere em uma determinada data, os segundos passados
45      * @param dateParam - Data a ser retornada
46      * @param second - Segundos a serem inseridos
47      * @return - Data com os segundos já inseridos
48      */

49     public static Date JavaDoc setDateSecond(Date JavaDoc dateParam, int second){
50         Calendar JavaDoc dteComp = Calendar.getInstance();
51         dteComp.setTime(dateParam);
52         dteComp.set(Calendar.SECOND, second);
53         return dteComp.getTime();
54     }
55
56     /**
57      * Recupera uma data por extenso.
58      * Ex: 17 de Março de 2005
59      * @param data - Data a ser realizado o parser
60      * @return Data por extenso
61      */

62     public static String JavaDoc getDataExtenso(Date JavaDoc data){
63         String JavaDoc retorno = getDiaSemana(data)
64                         + ", " + getDiaDoMes(data)
65                         + " de " + getMesExtenso(data)
66                         + " de "+ getAno(data);
67         return retorno;
68     }
69     
70     
71     /**
72      * Metodo que obtém o dia da semana de uma determinada data
73      * , ex: Segunda-Feira, Terça-Feira, etc..
74      * @param data - Data a ser retirado o dia da semana
75      * @return - String contendo o dia da semana
76      */

77     public static String JavaDoc getDiaSemana(Date JavaDoc data){
78         String JavaDoc dt = "";
79         try{
80             Calendar JavaDoc cal = new GregorianCalendar JavaDoc();
81             cal.setTime(data);
82             int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
83             if(dayOfWeek == 1) dt = "Domingo";
84             if(dayOfWeek == 2) dt = "Segunda-Feira";
85             if(dayOfWeek == 3) dt = "Terça-Feira";
86             if(dayOfWeek == 4) dt = "Quarta-Feira";
87             if(dayOfWeek == 5) dt = "Quinta-Feira";
88             if(dayOfWeek == 6) dt = "Sexta-Feira";
89             if(dayOfWeek == 7) dt = "Sábado";
90         } catch (Exception JavaDoc e){
91             e.printStackTrace();
92         }
93         return dt;
94     }
95
96     
97     /**
98      * Metodo que retorna o mes por extenso, ex: Abril
99      * @param data - Data a ser retirado o mes
100      * @return - Uma string contendo o mes
101      */

102     public static String JavaDoc getMesExtenso(Date JavaDoc data){
103         String JavaDoc dt = "";
104         try{
105             Calendar JavaDoc cal = new GregorianCalendar JavaDoc();
106             cal.setTime(data);
107             int month = cal.get(Calendar.MONTH);
108             if(month == 0) dt = "Janeiro";
109             if(month == 1) dt = "Fevereiro";
110             if(month == 2) dt = "Março";
111             if(month == 3) dt = "Abril";
112             if(month == 4) dt = "Maio";
113             if(month == 5) dt = "Junho";
114             if(month == 6) dt = "Julho";
115             if(month == 7) dt = "Agosto";
116             if(month == 8) dt = "Setembro";
117             if(month == 9) dt = "Outubro";
118             if(month == 10) dt = "Novembro";
119             if(month == 11) dt = "Dezembro";
120
121         } catch (Exception JavaDoc e){
122             e.printStackTrace();
123         }
124         return dt;
125     }
126
127     /**
128      * Metodo que retorna a data no formato: Abr/2004
129      * @param data - Data a ser retirado o mes
130      * @return - Uma string a data no formato: Abr/2004
131      */

132     public static String JavaDoc getDataAbreviada(Date JavaDoc data){
133         String JavaDoc dt = "";
134         try{
135             Calendar JavaDoc cal = new GregorianCalendar JavaDoc();
136             cal.setTime(data);
137             int month = cal.get(Calendar.MONTH);
138             if(month == 0) dt = "Jan";
139             if(month == 1) dt = "Fev";
140             if(month == 2) dt = "Mar";
141             if(month == 3) dt = "Abr";
142             if(month == 4) dt = "Mai";
143             if(month == 5) dt = "Jun";
144             if(month == 6) dt = "Jul";
145             if(month == 7) dt = "Ago";
146             if(month == 8) dt = "Set";
147             if(month == 9) dt = "Out";
148             if(month == 10) dt = "Nov";
149             if(month == 11) dt = "Dez";
150             dt += "/" + cal.get(Calendar.YEAR);
151         } catch (Exception JavaDoc e){
152             e.printStackTrace();
153         }
154         return dt;
155     }
156
157
158     /**
159      * Metodo retorna o dia do mes, ex: 12
160      * @param data - Data a ser retirado o dia do mes
161      * @return - String contendo o dia do mes
162      */

163     public static String JavaDoc getDiaDoMes(Date JavaDoc data){
164         String JavaDoc dt = "";
165         try{
166             Calendar JavaDoc cal = new GregorianCalendar JavaDoc();
167             cal.setTime(data);
168             dt = ""+ cal.get(Calendar.DAY_OF_MONTH);
169         } catch (Exception JavaDoc e){
170             e.printStackTrace();
171         }
172         return dt;
173     }
174
175     /**
176      * Metodo retorna o ano, ex: 2004
177      * @param data - Data a ser retirado o ano
178      * @return String contendo o ano
179      */

180     public static String JavaDoc getAno(Date JavaDoc data){
181         String JavaDoc dt = "";
182         try{
183             Calendar JavaDoc cal = new GregorianCalendar JavaDoc();
184             cal.setTime(data);
185             dt = ""+ cal.get(Calendar.YEAR);
186         } catch (Exception JavaDoc e){
187             e.printStackTrace();
188         }
189         return dt;
190     }
191
192     /**
193      * Retorna uma data formatada conforme a configuração de
194      * "Configuration.dateFormat"
195      * @param date
196      * @return
197      */

198     public static String JavaDoc dateFormat(Date JavaDoc date){
199         SimpleDateFormat JavaDoc sf = new SimpleDateFormat JavaDoc(ConfigurationFactory.getConf().dateFormat);
200         return sf.format(date);
201     }
202
203     /**
204      * Retorna uma data formatada conforme a configuração de
205      * "Configuration.dateFormat"
206      * @param date
207      * @return
208      */

209     public static String JavaDoc dateMinuteFormat(Date JavaDoc date){
210         Configuration cfg = ConfigurationFactory.getConf();
211         String JavaDoc dtFmt = cfg.dateFormat;
212         String JavaDoc mntFmt = cfg.timeFormat;
213         SimpleDateFormat JavaDoc sf = new SimpleDateFormat JavaDoc(dtFmt + " " + mntFmt);
214         return sf.format(date);
215     }
216
217     /**
218      * Retorna uma data formatada conforme String format
219      * passado
220      * @param date
221      * @return
222      */

223     public static String JavaDoc dateFormat(Date JavaDoc date, String JavaDoc format){
224         SimpleDateFormat JavaDoc sf = new SimpleDateFormat JavaDoc(format);
225         return sf.format(date);
226     }
227
228     /**
229      * Calcula o total de dias de um determinado mês
230      * @param month
231      * @param year
232      * @return Retorna o total de dias de um determinado ano e mês
233      */

234     public static int getTotalOfDays(int month, int year) {
235         int dom[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
236
237         if (year % 400 == 0) {
238             dom[1] = 29;
239         } else {
240             if (year % 4 == 0 && year % 100 != 0) {
241                 dom[1] = 29;
242             }
243         }
244         return dom[month - 1];
245     }
246     
247     
248     public static String JavaDoc dateRFCFormat(Date JavaDoc date) {
249         return RFC822DATEFORMAT.format(date);
250     }
251
252 }
253
Popular Tags