URGENTE: Date

3 respostas
F

olá pessoal!
preciso aumentar em 1 mes a data q tenho
e nao posso usar Calendar

Atualmente estou fazendo isso:
new Date((long)(dtDtInicio.getTime() + 302460601000))

Pq nao esta dando certo?

Obrigado,
Fernando

3 Respostas

T

a) Porque alguns meses têm 31 dias e outros têm 28 :stuck_out_tongue:
a1) Porque o número [telefone removido] é maior que o maior int positivo, o que vai acabar dando confusão (você obteve uma data que é antes do esperado, não?). Para representar 30 dias em milissegundos, use 30L2460601000, que dá o resultado 2592000000L esperado.
b) Porque pode haver horário de verão no meio :!:
c) Por que é que você não pode usar java.util.Calendar?
Parece coisa de escola, ou de chefe maluco.
java.util.Calendar foi introduzido no JDK 1.1, então pode ser usado mesmo com a Microsoft JVM.

F

é pq na verdade eu to dentro de um jasper e tb pq eu preciso fazer isso rapido!:arrow: :arrow:
entao nao venha me falar pra fazer um scriptlet :? :?

e nao é a diferenca de dias q ta atrapalhando

tipo a data inicial eh mes FEV , depois de somar os milliseconds ele ao inves de dar MAR (esperado) da JAN

0.o

David

FokaMLK:
tipo a data inicial eh mes FEV , depois de somar os milliseconds ele ao inves de dar MAR (esperado) da JAN
Isso acontece por causa do item a1 dos listados pelo thingol. Como o valor é maior que o comportado por um inteiro, o resultado da multiplicação será negativo (dará -[telefone removido]), por isso você volta no tempo, Tente executar isso:

System.out.println(30*24*60*60*1000);
System.out.println(30L*24*60*60*1000);
Criado 5 de abril de 2006
Ultima resposta 5 de abr. de 2006
Respostas 3
Participantes 3