e ai…alguem pode me ajudar…
estou fazendo um sistema que o usuario informa a data de aniversario que é uma String “dd/MM/yyyy”
e converto ela para um Date
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy")
try{
setNi(sdf.parse(getNiver())); //setNi é um Date e getNiver é uma string no caso a data q o usuario passo
}catch (Exception e) {
}
ai na outra classe onde irei fazer a comparaçao da data atual do SO com a data de aniversario não ta dando certo
nao ta comparando to fazendo assim:
Date d=new Date(); // peguei a data completa do SO
[code]SimpleDateFormat sdf =new SimpleDateFormat(“dd/MM/yyyy”);
sdf.format(d); // to formatando o Date no formarto igual a data q o usuario passou “dd/MM/yyyy”
Cidadao ci=null; //Cidadao é classe onde esta a data de aniversario
for(int i=0;i<vec.size();i++){
ci=(Cidadao)vec.get(i);
if(d.equals(ci.getNi())){//to comparando a Date d (do Sistema Operacional) com a Date do usuario
saida+=ci+"\n";
}
}System.out.println(“testee:\n”+saida);[/code]
mas nao ta entrando nesse “if” nao sei o que to fazendo de errado…
se eu converter todas as datas para uma String ai da certo, mas eu quero converter tudo para Date e comparar
Date com Date
abraçoo
é o seguinte…
qndo vc faz um Data d = new Date(); vc está pegando a data do sistema e tb a hora
entao qndo vc faz d.equals(ci.getNi()) está sendo comparado o objeto por completo incluindo a hora!
entao seta todas as horas, minutos e segundos(incluindo a do sistema) com 0
é foi praticamente isso que fiz tbm e deu certo…
transformei minha String com a data do aniversario para Date, dpois peguei a data do SO formatei para “dd/MM/yyyy” transformei para String e trasnformei para Date dnovo, meio estranho neh… mas tem q ser assim mesmo haeuae
abraço e vlw galera
setNiver(JOptionPane.showInputDialog("Dia do seu Aniversario:\nEx:08/01/1987"));
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try{
setNi(sdf.parse(getNiver()));
}catch (Exception e) {
}
System.out.println(sdf.format(getNi()));
}