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.
Porque não declarar do tipo Date?
Nele você consegue utilizar vários métodos nativos que vão facilitar sua vida.
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.