Trabalhar com datas

11 respostas
JPinhead

e aee galera!!
bom o problema é o seguinte… tenho que fazer cálculos com data, para saber quantos dias e meses têm entre um intervalo de datas…
data1 -
data2

e também calcular uma data final para um prazo x de dias…
ex… 18/05/2005 ndias ==> xx/xx/xxxx

Nunca trabalhei com datas relacionadas à calendário… será que alguem pode me ajudar…

11 Respostas

Rafael_Nunes

http://www.javaalmanac.com/egs/java.util/CompDates.html

_fs

Aprenda a buscar no forum. O botao Pesquisar ta ali em cima.
http://www.guj.com.br/posts/list/9440.java

JPinhead

valeww a ajuda!
tudo resolvido
mas ainda falta um detalhe…

quando eu adiciono x dias em uma data
tipo

01/01/2005 + 6 dias = Fri Jan 07 00:00:00 BRST 2005

e aí?? como q eu converto para 07/01/2005

DateFormat formato2 = new SimpleDateFormat("dd/MM/yyy");

gc.add(Calendar.DAY_OF_MONTH, i);

datafinal.setTime(gc.getTimeInMillis());

formato2.format(datafinal);

Não tá convertendo q q tá errado!

Mauricio_Linhares

Em vez de usar Calendar.DAY_OF_MONTH use Calendar.DAY_OF_YEAR, veja a explicação na própria API, a regra 2 de manipulação de campos:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html

JPinhead

não rolou!

quero converter a data final

mas ainda falta um detalhe... 

quando eu adiciono x dias em uma data 
tipo 

01/01/2005 + 6 dias = Fri Jan 07 00:00:00 BRST 2005 

e aí?? como q eu converto para 07/01/2005
JPinhead

se alguém puder me dar uma dica…
Já olhei a api mas não consegui resolver…

eu quero converter o resultado do:

gc.add(Calendar.DAY_OF_MONTH, i); datafinal.setTime(gc.getTimeInMillis());
que é “Fri Jan 07 00:00:00 BRST 2005” para “07/01/2005”

tem como??? help please! :wink:

Mauricio_Linhares

gc.add(Calendar.DAY_OF_YEAR, i); datafinal.setTime(gc.getTimeInMillis());

Não funciona :?:

JPinhead

não funciona! :!:

o problema é que o gc.getTimeInMillis() retorna a data assim “Fri Jan 07 00:00:00 BRST 2005” certo!..
se fizer

gc.get(Calendar.DAY_OF_MONTH);
gc.get(Calendar.MONTH);
gc.get(Calendar.YEAR);

retorna 7
0
2005
e aí? pra formatar isso tem que acrescentar 0 no dia=07 e somar 1 ao mês e acrescenatar o 0 =01. Tem como fazer isso de forma mais fácil?

Mauricio_Linhares

Não entendi nada companheiro.

Como assim acrescentar 0 no dia, 1 no mês?

Pra classe calendar, o mês 0 é Janeiro, veja a documentação que eu mostrei.

JPinhead

o que eu quis mostar é não posso dizer para o cliente que

dia 01/01/2005 mais 6 dias é dia 7 /0 /2005 :shock: , eu sei q 0=janeiro, mas eu quero mostar 01 entendeu?? 07/01/2005 assim!

existe alguma forma diferente de somar dias numa data??

dyorgio
cara…não esta faltando um “y” no seu formato de data?

<code>

DateFormat formato2 = new SimpleDateFormat(“dd/MM/yyy”);

</code>

[]'s dyorgio <img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/s.pngtuck_out_tongue.png?v=9" title=":stuck_out_tongue:" class="emoji" alt=":stuck_out_tongue:">
Criado 18 de maio de 2005
Ultima resposta 19 de mai. de 2005
Respostas 11
Participantes 5