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

rango fechas

Estas en el tema de rango fechas en el foro de Java en Foros del Web. Necesito recorrer un rango de fechas, ingreso las siguientes fechas 05/12/2013 - 20/12/2013 y necesito que en java se muestre de la siguiente manera 05/12/2013 ...
  #1 (permalink)  
Antiguo 16/12/2013, 11:09
 
Fecha de Ingreso: agosto-2010
Mensajes: 127
Antigüedad: 14 años, 3 meses
Puntos: 1
rango fechas

Necesito recorrer un rango de fechas, ingreso las siguientes fechas 05/12/2013 - 20/12/2013

y necesito que en java se muestre de la siguiente manera
05/12/2013
06/12/2013
07/12/2013
08/12/2013
09/12/2013
10/12/2013
11/12/2013
12/12/2013
13/12/2013
14/12/2013
15/12/2013
16/12/2013
17/12/2013
18/12/2013
19/12/2013
20/12/2013

necesito ayuda
  #2 (permalink)  
Antiguo 16/12/2013, 12:24
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 11 meses
Puntos: 22
Respuesta: rango fechas

Y cual es el problema?? coges las dos cadenas entrantes y opera con ellas con la funcion split() que te devuelve un array de cadenas a través de un separador, que en tu caso sería la barra "/".

String fechaInicio = "5/12/2013";
String[] fechaArray = fechaInicio.split("/");

esto te devolvera en fechaArray {5, 12, 2013}

Y a partir de ahi trabajas e imprimes lo que se te manda...

Por otro lado si tienes que trabajar con fechas y no con Strings puedes utilizar la clase GregorianCalendar, a través de este enlace puedes orientarte

http://carloszuluaga.wikidot.com/art...has-en-java-ii

Un saludo!
  #3 (permalink)  
Antiguo 17/12/2013, 02:28
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 3 meses
Puntos: 188
Respuesta: rango fechas

Date date; // your date
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);

Hay que tener en cuenta que el mes numéricamente va de 0 a 11.

Habria que hacer un metodo que compare años, meses y días. Si el año es mayor habria que ir incrementando días.

Para esto creo que te puede valer: cal.add( Calendar.DATE, 1 );

Cuando se acaben los días del mes se incrementa el mes, y cuando se acaben los meses se incrementa el año.

Cuando los años sean iguales se comparan los meses y se repetirá la misma operación anterior hasta que coincidan.

Finalmente se comparan los días y cuando sean iguales finaliza el proceso.

Para convertir el Calendar en texto y viceversa puedes usar SimpleDateFormat con el patrón deseado "dd/MM/yyyy"
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: rango
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 22:27.