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

Problemas usando calendar al sumar/restar dias

Estas en el tema de Problemas usando calendar al sumar/restar dias en el foro de Java en Foros del Web. Hola, tengo un problema un tanto raro. Estoy utilizando la clase GregorianCalendar, mi problema es el siguiente despues de instanciar la clase, hago un "micalendario.set(2006,2,1)" ...
  #1 (permalink)  
Antiguo 01/02/2006, 09:37
 
Fecha de Ingreso: julio-2005
Mensajes: 90
Antigüedad: 18 años, 9 meses
Puntos: 0
Pregunta Problemas usando calendar al sumar/restar dias

Hola, tengo un problema un tanto raro.

Estoy utilizando la clase GregorianCalendar, mi problema es el siguiente despues de instanciar la clase, hago un "micalendario.set(2006,2,1)" haciendo una traza veo que los valores se actualizan en mi calendario. Despues hago "micalendario.add(GregorianCalendar.DATE,-2)" y los datos de 'micalendario' cambian a los siguientes: año 2006, mes 1, dia 27.

Como pueden observar esto esta mal, ya que aunque febrero tenga 28 dias, enero tiene 31, y al restar dos dias del '1 de febrero' el resultado deberia ser '30 de enero' y no '27 de enero'.

He realizado algunos intentos para ver si encontraba el fallo, he cambiado las instacias de GregorianCalendar a Calendar, he probado con otros meses.

El problema surje siempre cuando al sumar/restar dias paso de un mes a otro. Ademas en otra parte del código calculo el 'DAY_OF_WEEK' y solo me funciona para los dias de febrero, nose porque como le ponga otro mes (al menos del 2006) no calcula bien el dia tampoco.

Bueno espero haberme explicado y que alguien pueda ayudarme.

Un Saludo.
  #2 (permalink)  
Antiguo 01/02/2006, 10:06
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
revisa esta FAQ

http://www.forosdelweb.com/showpost....2&postcount=26

es algo parecido a lo que quiers ahcer!!
  #3 (permalink)  
Antiguo 01/02/2006, 12:59
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
La respuesta está en el API, que es conveniente leerse. Sólo te daré una pista. ¿Qué fecha resulta de hacer ".set(2006,2,1)" en un objeto Calendar?
Respuesta: No la que tu crees .
  #4 (permalink)  
Antiguo 01/02/2006, 14:58
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
otra pista!!

recuerda donde comienzan los indices en JAVA...... indices de arreglos, de vectores, de listas.........

jejejejjejeje

got it??

PD: esto es divertido
  #5 (permalink)  
Antiguo 02/02/2006, 03:03
 
Fecha de Ingreso: julio-2005
Mensajes: 90
Antigüedad: 18 años, 9 meses
Puntos: 0
endeve que graciosillos somos otodos... Bueno pues nada ala a leer las api, que conste que las mire y fue alli donde encontre el metodo set y el add, y si no recuerdo mal uno de los metodos set era set(year, month, date).

El primer elemento de un vector es siempre en 0 hasta ahi llego, pero gracias por 'las pistas'.

Bueno si me da mas problemas os lo comento. De todas formas con las dos pistas me ha entrado una duda. xD pero probare las dos cosass que he pensado a ver que pasa.
  #6 (permalink)  
Antiguo 02/02/2006, 06:25
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Cita:
Iniciado por Motoko
endeve que graciosillos somos otodos... Bueno pues nada ala a leer las api, que conste que las mire y fue alli donde encontre el metodo set y el add, y si no recuerdo mal uno de los metodos set era set(year, month, date).
Correcto, pero léete tambien la descripción de los parametros que hay que pasarle.
  #7 (permalink)  
Antiguo 02/02/2006, 10:26
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
lee detenidamente que mes pertenece a 1, sera enero??

no lo creo

have funnnnnnn
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 10:40.