Problemas com datas

6 respostas
N
Estou tendo dificuldade em conseguir saber a diferença entre 2 datas, sendo que as mesmas estão sendo recebidas pelo usuário no esquema (estou evitando usar bibliotecas externas):

Scanner in = new Scanner(<a href="http://System.in">System.in</a>);

int d1, d2, m1, m2, a1, a2;

d1 = in.nextInt();

m1 = in.nextInt();

a1 = in.nextInt();

d2 = in.nextInt();

m2 = in.nextInt();

a2 = in.nextInt();

6 Respostas

Jederson_Andre

Vc esta recebendo data como Integer.
Não é melhor String, tipo: “26/03/2018” ?

N

As ints sempre têm essa entrada, mas acho que é possível concatená-las para formar essa string

G

é sempre preferível, ao usar o scanner do java, “parsear” qualquer dado que o usuário coloque utilizando o metodo parseInt() de objeto Integer (o objeto de int) se você quiser um int (ou Double se você quiser parsear double, etc).

Integer.parseInt(in.nextLine());

você pode inclusive aproveitar a biblioteca do Java para fazer a comparação com

Integer.compare(d1,d2);
se retornar 0, x == y (d1 == d2)

se for menor que zero, x < y (d1 < d2)

se for maior que zero, x > y (d1 > d2)
int comparaDatas = Integer.compare(d1,d2);
if ( comparaDatas > 0 ) {
	System.out.printLn(d2 + "Foi ontem!");
	} else if ( comparaDatas < 0 ) {
	System.out.printLn(d2 + "É amanhã!");
	} else if ( comparaDatas == 0 ) {
	System.out.printLn(d2 + "É hoje!");
	}

Minha opinião sobre comparar datas: é o inferno e não recomendo esse destino a ninguém.

R

Porque não declarar do tipo Date?

Nele você consegue utilizar vários métodos nativos que vão facilitar sua vida.

G

If your GetItemDate is failing for either date, you will get zero. On the catch statement, place a println or debug to output the issue and see if that tells you something.

H

você só quer saber se uma data é deferente da outra, ou se uma é maior que a outra?
Pelo seu código para uma ser igual a outra você teria que fazer um fi assim:

if(d1==d2&&m1==m2&&a1==a2){
//Colocar o que deve ser feito se forem iguais aqui
}
else{
//Colocar o que deve ser feito se forem diferentes aqui
}

se precisar comparar qual é maior tem que começar comparando primeiro o ano, depois se forem iguais, compara o mês e se forem iguais compara os dias.

Criado 27 de março de 2018
Ultima resposta 19 de abr. de 2018
Respostas 6
Participantes 6