Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/05/2012, 10:28
pipelojones
 
Fecha de Ingreso: marzo-2012
Mensajes: 30
Antigüedad: 12 años
Puntos: 0
Respuesta: implementar un metodo

Cita:
Iniciado por huspy Ver Mensaje
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 original
  1. imprimirNotasAnteriores(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 original
  1. if ((notas[i].anyo < anyo) || (notas[i].anyo == anyo && notas[i].mes < mes) || (notas[i].anyo == anyo && notas[i].mes == mes && notas[i].dia < dia)) {
  2.     System.out.println("NOTA del día: " + notas[i]);
  3. }

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 &&nota.getMes() == mes && nota.getDia() < dia))) {
System.out.println(nota.getTitulo());}