Problemas com datas

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(System.in);
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();

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

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

é 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.

1 curtida

Porque não declarar do tipo Date?

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

1 curtida

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.

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.