Hola gracias por la contestación, ya entiendo lo que me comentas, sin embargo no me sirve, el error en mi programa no es ese; no me interesa convertir el dato a String, me interesa convetir una entrada de tres números (dia, mes año) como int a forma Date, así puedo utilizar los métodos after y before, sin embargo los datos que me devuelve el programa no se parecen en nada a los que le introduzco por teclado. El código que he escrito es éste:
public void imprimirEntreFechas (int diaEntrada, int mesEntrada, int añoEntrada, int diaSalida, int mesSalida, int añoSalida) {
Date fechaEntrada=new Date (diaEntrada, mesEntrada, añoEntrada); //Fecha de entrada del visitante
Date fechaSalida=new Date (diaSalida, mesSalida, añoSalida); //Fecha de salida de éste
System.out.println ("Fecha entrada= "+fechaEntrada); //Compruebo el formato de las fechas
System.out.println ("Fecha entrada= "+fechaEntrada);
if(tamano!=0) { //Si el tamaño de la lista enlazada es distinto de 0 la lista no está vacío
Nodo temp = primero ; // Nodo temp será un dato de tipo nodo auxiliar
String str = "" ; //La variable str será donde almacene los datos a imprimir
for(int i =0; i<this.tamano; i++) { //Inicio del bucle para buscar los datos en la lista
if (estaEntreLasFechas (temp.dato.getFecha_entrada(), fechaEntrada, fechaSalida)) {
//Condicional para comprobar que hay datos entre las fechas introducidas, si el metodo estaEntreFechas es true
str = str + temp.dato.getInformacion() + "\n" ;
//Si hay datos entre los valores introducidos se almacenan en la variable str
temp = temp.siguiente ; //temp es igual al siguiente nodo
}
}
System.out.println(str); //Imprimimos la variable str con todos los datos encontrados
}
}
//Inicio del metodo que valida que los datos estan entre las fechas introducidas
private boolean estaEntreLasFechas (Date fecha, Date fechaEntrada, Date fechaSalida) {
if (fecha.before(fechaSalida) && fecha.after(fechaEntrada)) {
//Si la fecha de salida es posterior a la fecha del nodo y anterior a la fecha de salida del nodo
return true; //Devuelve true
}
return false; //Si no devuelve false
}
Lo cierto que es como fechas de entrada y salida para comprobar el método introduzco dos fechas fijas:
Fecha de entrada: 1, 1, 2010
Fecha de salida: 1, 4, 2010
Pero en vez de estas fechas me devuelve:
Fecha entrada= Fri Aug 03 00:00:00 CET 1906
Fecha entrada= Fri Aug 03 00:00:00 CET 1906
¿Por qué me cambia los datos? Por más que lo miro no veo el motivo.
Muchas gracias y un saludo.