[Resolvido]Diminuir 1 ano da data atual

5 respostas
S

Boa tarde pessoal estou com uma dúvida que ainda não consegui resolver o negócio é o seguinte tenho a data atual e preciso pegar a data de 1 ano antes(não to contando ano bissexto) então tento o seguinte

long data1AnoAntes = new Date().getTime() - (365 * 24 * 60 * 60 * 1000);
System.out.println("Data Atual: "+new Date());
System.out.println("Data 1 ano antes: "+new Date(data1AnoAntes));

Se executo esse código recebo a seguinte saída:

Data atual: Sun Dec 04 17:48:25 BRST 2011
Data 1 Ano Antes: Thu Nov 17 17:07:56 BRST 2011

ou seja está errado já que diminuiu apenas 17 dias e alguns minutos, então percebi que na hora do calculo que deveria me retornar o valor [telefone removido] ele me retorna apenas [telefone removido], com números pequenos com 1 dia antes ele me retorna certinho então a dúvida é o seguinte como vou fazer esse calculo? preciso usar a classe Calendar?

Obrigado a todos!

5 Respostas

pmlm
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR, -1);
ViniGodoy

Qual parte do deprecated você não entendeu na documentação do Date?

Calendar cal = Calendar.getInstance(); System.out.printf("Data atual: %F%n", cal); cal.add(Calendar.YEAR, -1); System.out.printf("Data atual: %F%n", cal);

S

Funcionou com seu código

Calendar c = Calendar.getInstance(); c.add(Calendar.YEAR, -1);

Obrigado, nem sabia que é tão simples usando Calendar. flw!

S

ViniGodoy:
Qual parte do deprecated você não entendeu na documentação do Date?

Calendar cal = Calendar.getInstance(); System.out.printf("Data atual: %F%n", cal); cal.add(Calendar.YEAR, -1); System.out.printf("Data atual: %F%n", cal);

Ué, nem sabia que tava usando algo deprecated

ViniGodoy

Pior ainda. Você não lê a documentação das classes que você usa?

Criado 4 de dezembro de 2011
Ultima resposta 5 de dez. de 2011
Respostas 5
Participantes 3