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

Fechas en Java

Estas en el tema de Fechas en Java en el foro de Java en Foros del Web. Hola a todos/as Estoy haciendo una aplicación donde tengo una selección de rango de fechas (hoy, esta semana, este mes y este año). Hasta ahora ...
  #1 (permalink)  
Antiguo 30/03/2014, 12:20
 
Fecha de Ingreso: enero-2013
Mensajes: 54
Antigüedad: 11 años, 3 meses
Puntos: 0
Fechas en Java

Hola a todos/as

Estoy haciendo una aplicación donde tengo una selección de rango de fechas (hoy, esta semana, este mes y este año). Hasta ahora he podido calcular el primer y último día del mes actual, pero no logro obtener el primer y ultimo día de la semana actual ni del año actual. Álguien puede ayudarme?
  #2 (permalink)  
Antiguo 30/03/2014, 14:06
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Fechas en Java

No entiendo bien. Primer y último día de la semana actual entiendo que se refiere a fecha (dia/mes/año) del primer día y último día de la semana actual. ¿es así?.

¿Y qué quiere decir primer y útimo día del año actual? ¿Lunes, Martes... ?

Echa un ojo a la clase Calendar de java, posiblemente puede ayudarte. Tiene cosas como número de semana actual y día de la semana http://chuwiki.chuidiang.org/index.p...lendar_de_Java

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 30/03/2014, 14:13
 
Fecha de Ingreso: enero-2013
Mensajes: 54
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Fechas en Java

En el caso del primer y último día de esta semana me refiero a la fecha (dd/MM/yyyy 00:00) del lunes correspondiente a la semana actual y la fecha (dd/MM/yyyy 23:59) del domingo correspondiente a la semana actual.

Lo mismo intento conseguir con el año actual.

Para el mes he hecho lo siguiente:

Código Java:
Ver original
  1. // Devuelve la fecha del primer dia del mes actual con la hora 00:00
  2.     public static Date getPrimerDiaDelMes() {
  3.         Calendar cal = Calendar.getInstance();
  4.         cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),
  5.                 cal.getActualMinimum(Calendar.DAY_OF_MONTH),
  6.                 cal.getMinimum(Calendar.HOUR_OF_DAY),
  7.                 cal.getMinimum(Calendar.MINUTE),
  8.                 cal.getMinimum(Calendar.SECOND));
  9.         return cal.getTime();
  10.     }
  11.  
  12.     // Devuelve la fecha del último dia del mes actual con la hora 23:59
  13.     public static Date getUltimoDiaDelMes() {
  14.         Calendar cal = Calendar.getInstance();
  15.         cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH),
  16.                 cal.getActualMaximum(Calendar.DAY_OF_MONTH),
  17.                 cal.getMaximum(Calendar.HOUR_OF_DAY),
  18.                 cal.getMaximum(Calendar.MINUTE),
  19.                 cal.getMaximum(Calendar.SECOND));
  20.         return cal.getTime();
  21.     }
  #4 (permalink)  
Antiguo 01/04/2014, 02:37
 
Fecha de Ingreso: enero-2013
Mensajes: 54
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Fechas en Java

No logro conseguir lo que quiero. Hasta ahora he hecho esto:


Código Java:
Ver original
  1. public static String getPrimerDiaDeLaSemana() {
  2.         DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
  3.         Calendar cal = Calendar.getInstance();
  4.         cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
  5.         String fechaInicio = dateFormat.format(cal.getTime() + "00:00");
  6.         return fechaInicio;
  7.     }

Pero al ejecutarlo me da el siguiente error:

Código:
Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Date
	at java.text.DateFormat.format(Unknown Source)
	at java.text.Format.format(Unknown Source)
	at Calculos.getPrimerDiaDeLaSemana(Calculos.java:37)
	at Main.main(Main.java:8)
Conseguir la fecha del primer dia de la semana actual es fácil, lo que no logro es colocar la hora mínima (00:00) y en el último día de la semana actual la máxima (23:59).
  #5 (permalink)  
Antiguo 01/04/2014, 04:33
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: Fechas en Java

Ese error se debe a que el método format espera que le pases un objeto Date como parámetro, y no es eso lo que le estás pasando.

Es esto lo que buscas?

Código Java:
Ver original
  1. public static String getPrimerDiaDeLaSemana() {
  2.         DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  3.         Calendar cal = Calendar.getInstance();
  4.         cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
  5.         cal.set(Calendar.HOUR_OF_DAY, 0);
  6.         cal.set(Calendar.MINUTE, 0);
  7.         cal.set(Calendar.SECOND, 0);
  8.         String fechaInicio = dateFormat.format(cal.getTime());
  9.         return fechaInicio;
  10.     }
  11.     }

Esto imprime:

2014/03/31 00:00:00

Última edición por rgf1987; 01/04/2014 a las 04:40 Razón: Corregir código.

Etiquetas: Ninguno
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 09:15.