Oi gente,
To tentando fazer aqui um método pra me retornar o intervalo de uma semana, ou seja: o dia de hoje, e o dia da semana anterior. Exemplificando a data desta quinta (30/12/2004) e a data da quinta anterior (23/12/2004).
Estava fazendo cálculos numéricos e concatenando Strings… enfim, gambiarra.
Alguém pode me ajudar a fazer isso usando Calendar?
Desde já agradeço!
Beijos 
Intervalo Semanal
5 Respostas
Tente dessa forma, talvez seja isso q vc esteja procurando:
GregorianCalendar gc = new GregorianCalendar(); //Retorna a data de hoje.
long seteDias = 24*60*60*1000*7; //Retorna 7 dias em millis
long dataAnterior = gc.getTime() - seteDias;
gc.setTimeInMillis(dataAnterior);
System.out.println(gc.getTime()); //retornara a data a 7 dias atras.
Abraço a todos!!!
Oi,
Retornou o seguinte erro:
description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred between lines: 8 and 117 in the jsp file: /Graficos/GraProducao.jsp
Generated servlet error:
C:\jakarta-tomcat-4.0.6\work\Standalone\localhost\sigh\Graficos\GraProducao$jsp.java:102: Incompatible type for -. Can’t convert java.util.Date to long.
long dataAnterior = gc.getTime() - seteDias;
^
An error occurred between lines: 8 and 117 in the jsp file: /Graficos/GraProducao.jsp
Generated servlet error:
C:\jakarta-tomcat-4.0.6\work\Standalone\localhost\sigh\Graficos\GraProducao$jsp.java:104: No method matching setTimeInMillis(long) found in class java.util.GregorianCalendar.
gc.setTimeInMillis(dataAnterior);
^
2 errors
Ou seja, ele não consegue fazer a subtração por ser tipos diferentes…
Generated servlet error:
long dataAnterior =gc.getTime()- seteDias;
o erro foi que o metodo q eu te passei estava errado, quando fui atualizar minha internet caiu e so agora voltou…
em vez de usar gc.getTime(); use gc.getTimeInMillis();
dessa forma dará certo!!!
Abraço!!!
Agora estou tendo outro problema que não encontro o erro.
Coloquei o código exatamente como está o seu, o page import no java.util.* pois estou fazendo em jsp.... Ele diz não encontrar essa classe... o erro é o seguinte:
Apache Tomcat/4.0.6 - HTTP Status 500 - Internal Server Error
--------------------------------------------------------------------------------
type Exception report
message Internal Server Error
description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred between lines: 14 and 132 in the jsp file: /Graficos/GraProducao.jsp
Generated servlet error:
C:\jakarta-tomcat-4.0.6\work\Standalone\localhost\sigh\Graficos\GraProducao$jsp.java:118: No method matching getTimeInMillis() found in class java.util.GregorianCalendar.
long dataAnterior = gc.getTimeInMillis();
^
An error occurred between lines: 14 and 132 in the jsp file: /Graficos/GraProducao.jsp
Generated servlet error:
C:\jakarta-tomcat-4.0.6\work\Standalone\localhost\sigh\Graficos\GraProducao$jsp.java:122: No method matching setTimeInMillis(long) found in class java.util.GregorianCalendar.
gc.setTimeInMillis(dataAnterior);
^
2 errors
Algo faltando?
Não estou conseguindo entender o porque de nao localizar a classe GregorianCalendar, mas de qq forma existe outra forma para fazer isto!
Vamos tentar assim:
private Calendar gc;
long seteDias = 24*60*60*1000*7;
gc = Calendar.getInstance();
long dataAnterior = gc.getTimeInMillis() - seteDias;
gc.setTimeInMillis(dataAnterior);
System.out.println(gc.getTime());
Aqui está funcionando perfeitamente os dois metodos q te passei, caso este também nao funcione teste o codigo fora da pagina jsp.
Abraço a todos!!!