manipulação de datas

5 respostas
Savio

Pessoal, to apanhando aqui pra fazer um calculo.

é o seguinte, gostaria de mostrar na tela uma mensagem com quantos dias faltam pra senha do usuario expirar. O calculo tem que ser feito com a data da ultima vez que o usuario trocou a senha(está no banco) + 30 dias(periodo em que a senha ficará ativa, após a troca) menos a data de hoje.

tentei fazer assim:

public int diferencaEmDias(){ Calendar hoje = Calendar.getInstance(); Date agora = new Date(); Date dataTrocaSenha = voPassUsuario.getTrocaSenhaData(); return (int) ((dataTrocaSenha.getTime() + 30) - hoje.getTimeInMillis()); }

mas isso nao da certo!!!

5 Respostas

S

olá,
matéria completa sobre data em:

http://www.odi.ch/prog/design/datetime.php

http://webinsider.uol.com.br/index.php/2000/08/15/trabalhando-com-datas-em-java/

Espero ter ajudado

Sandro Lemanski da Silva

rolemberg

Humm…

Já tentou fazer assim:

  • Pega as duas e transforma em dias corridos
  • agora so sbtrair
  • Dai acredito que vc conseguirá ver o periodo que falta…
Rodrigo_Vieira_Pinto

[google]JodaTime[/google]

Excelente framework!

pyro

Já deu uma olhada para trabalhar com timestamp, talvez fique mais fácil para vc.

Savio

Galera, agradeço a todos pelas dicas de como implementar esse problema!!

Resolvi utilizando Calendar e Date.
public long diferencaEmDias() {
		Date agora = new Date();//Data do sistema, data de hoje.
		Date dataTrocaSenha = voPassUsuario.getTrocaSenhaData();//a data em que o usuario trocou a sua senha.
		int dias = voPassUsuario.getExpira();//o tempo em que sua senha permanecerá ativa.
		Date novaData = addDias(dataTrocaSenha, dias);//adiciono o valor na data de troca de senha.
		System.out.println(novaData);
		System.out.println((novaData.getTime() - agora.getTime()) / (24*60*60*1000));
		return ((novaData.getTime() - agora.getTime()) / (24*60*60*1000));//subtraiu o dia de hoje em milisegundos da data de troca de senha e divido 24(qtd de horas no dia) * 60(qtd de min de uma hora) * 60(qtd seg de uma hora) * 1000(qtd de milesegundos de 1 seg).
        } 
	
	public static Date addDias(Date date, int dias) {  
     
	    Calendar calendar = Calendar.getInstance();  
	    calendar.setTime(date);  
	    calendar.add(Calendar.DATE, dias);  
	   
	    return calendar.getTime();  
	      
	}
Criado 14 de fevereiro de 2008
Ultima resposta 14 de fev. de 2008
Respostas 5
Participantes 5