Cita:
Iniciado por huspy Esa comprobación deberías hacerla con un Date y no con cada dato por separado... Ya que puede que el año sea menor al año de los argumentos, pero el mes si después compruebas el mes y este es mayor al mes de la nota aunque en realidad sea menor ya que pertenece a un año menor... lo explico más graficamente....
Si tienes la siguientes notas:
NOTA1 -> 12/2/1983
NOTA2 -> 11/12/1994
NOTA3 -> 12/08/2012
Y en la llamada al método la haces así
Código Java:
Ver originalimprimirNotasAnteriores(14, 5, 2012);
SOLO se te imprimirá la primera fecha (12/2/1983), ya que el año es menos, pero el mes ES MAYORRRR!!
Por lo tanto yo te recomiendo que esto lo hagas con Date o hagas otra comprobación más fea del estilo....
Código Java:
Ver originalif ((notas[i].anyo < anyo) || (notas[i].anyo == anyo && notas[i].mes < mes) || (notas[i].anyo == anyo && notas[i].mes == mes && notas[i].dia < dia)) {
System.
out.
println("NOTA del día: " + notas
[i
]); }
Espero te sirva!
Saludos!
oye pues el caso es que me funciona de esta manera pero no entideno como evalua esto me lo puedes explicar esque estoy leyendo este operador(||)devuelve verdadero si el primero operando es verdadero si no devuelve lo que valga el segundo pero con tanta cosa no se como sigue el orden me lo puedes explicar por favor
if(((nota.getAño() < año) || (nota.getAño() == año && nota.getMes() < mes) || (nota.getAño() == año &¬a.getMes() == mes && nota.getDia() < dia))) {
System.out.println(nota.getTitulo());}