Foros del Web » Programación para mayores de 30 ;) » Java »

Problema Logico busqueda entre fecha y fecha

Estas en el tema de Problema Logico busqueda entre fecha y fecha en el foro de Java en Foros del Web. Tengo un fallo lógico que no logro resolver creo si no me equivoco que el problema tiene que estar en el como hago el año ...
  #1 (permalink)  
Antiguo 26/05/2017, 10:35
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 11 meses
Puntos: 4
Problema Logico busqueda entre fecha y fecha

Tengo un fallo lógico que no logro resolver

creo si no me equivoco que el problema tiene que estar en el como hago el año
Resulta que si busco entre fechas que coincidan con el mismo año por ejemplo 01/02/2017 y 28/02/2017 Me muestra perfectamente las 2 fechas 11/02/2017 y 17/02/2017 al igual que si lo hago 01/09/2016 al 31/12/2016 me muestra perfectamente 26/09/2016 y 25/12/2016, el problema esta cuando saltas de año ejemplo 01/09/2016 al 28/02/2017 Así debería de mostrar todas las fechas en cambio solo muestra las del 2016, Lo he intentado cambiando de mil formas el año pero lo único que consigo es liarme mas.

Código Java:
Ver original
  1. Vector<String> fecha_entrada = new Vector();
  2.         fecha_entrada.add("26/09/2016");
  3.         fecha_entrada.add("25/12/2016");
  4.         fecha_entrada.add("11/02/2017");
  5.         fecha_entrada.add("17/02/2017");
  6.        
  7.         String[] fecha_desde = get_fecha_desde.split("/");
  8.         int fecha_desde_dia= Integer.parseInt(fecha_desde[0]);
  9.         int fecha_desde_mes= Integer.parseInt(fecha_desde[1]);
  10.         int fecha_desde_anio= Integer.parseInt(fecha_desde[2]);
  11.        
  12.         String[] fecha_hasta = get_fecha_hasta.split("/");
  13.         int fecha_hasta_dia= Integer.parseInt(fecha_hasta[0]);
  14.         int fecha_hasta_mes= Integer.parseInt(fecha_hasta[1]);
  15.         int fecha_hasta_anio= Integer.parseInt(fecha_hasta[2]);
  16.        
  17.         for(int c =0; c<fecha_entrada.size();c++){
  18.            
  19.             String[] fecha = fecha_entrada.get(c).split("/");
  20.             int fecha_dia= Integer.parseInt(fecha[0]);
  21.             int fecha_mes= Integer.parseInt(fecha[1]);
  22.             int fecha_anio= Integer.parseInt(fecha[2]);
  23.            
  24.             if(
  25.             (fecha_desde_dia<fecha_hasta_dia)
  26.             &&(fecha_desde_mes<=fecha_hasta_mes)
  27.             &&(fecha_desde_mes<=fecha_mes)
  28.             &&(fecha_desde_anio<=fecha_hasta_anio)
  29.             &&(fecha_desde_anio<=fecha_anio) ){
  30.                
  31.                 //Salida de los registros entre X fecha y X fecha
  32.            
  33.             }
  34.            
  35.        
  36.         }
  #2 (permalink)  
Antiguo 29/05/2017, 03:23
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: Problema Logico busqueda entre fecha y fecha

fecha_desde_dia<fecha_hasta_dia

Estás diciendo que cumplen la condición sólo aquellos días que el número de día del mes de "hasta" sea mayor que el "desde", así que una fecha desde como 20/01/2016 ya no cumpliría condición con hasta 15/07/2017

Para comparar fechas como literales, la opción más sencilla es escribirlas en formato 2017/12/28, ya que las reglas de ordenación de texto coinciden con la de fechas.

fecha_desde_mes<=fecha_hasta_mes) &&(fecha_desde_mes<=fecha_mes)

Con esto te sucede lo mismo pero con meses
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.

Etiquetas: busqueda, fecha, logico, registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:17.