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

obtener el ultimo dia del mes

Estas en el tema de obtener el ultimo dia del mes en el foro de Java en Foros del Web. Bueno la idea es la siguiente tengo un combo( posee el mes) y un spinner(posee el año) para realizar unas gráficas donde el usuario selecciona ...
  #1 (permalink)  
Antiguo 12/12/2008, 07:42
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
obtener el ultimo dia del mes

Bueno la idea es la siguiente tengo un combo( posee el mes) y un spinner(posee el año) para realizar unas gráficas donde el usuario selecciona el mes y el año de inicio en uno y el mes y el año de fin en el segundo, ahora para realizar las gráficas necesito pasarle dos fechas, la cual seria el primer dia del mes y año de inicio y el ultimo dia del mes y el año de fin. ahora para el primer dia no tengo problemas ya que todos los meses poseen dia 1 (faa descubri america con esto), ahora para obtener el ultimo dia del mes que me pasan se me coplica un poco mas , ya que deberia saber si el mes tiene28,30 o 31 dias o 29 dias dependiendo si el año es bisiesto o no, me preguntaba si el Calendar tiene algun metodo que dado un mes y un año me devuelva el ultimo dia del mismo???
dejo un pedazo de codigo para que entiendan un poco mas

Código:
Calendar calInicio = Calendar.getInstance();
Calendar calFin = Calendar.getInstance();
calInicio.set(Integer.parseInt(anioInicio), Integer.parseInt(mesInicio), 1);
//aca deberia setearle el mes y el año al metodo del calFin para obtenerlo	
fechaInicio = calInicio.getTime();
fechaFin = calFin.getTime();
System.out.println("fecha de inicio " + fechaInicio);
System.out.println("fecha de fin " + fechaFin);
saludos y muchas gracias
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #2 (permalink)  
Antiguo 12/12/2008, 08:03
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: obtener el ultimo dia del mes

Ya pude dejo el codigo por las dudas,

Código:
Calendar calFin = Calendar.getInstance();		calFin.set(Integer.parseInt(anioFin), Integer.parseInt(mesFin), 1);
calFin.set(Integer.parseInt(anioFin), Integer.parseInt(mesFin), calFin.getActualMaximum(Calendar.DAY_OF_MONTH));
fechaFin = calFin.getTime();
saludos
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #3 (permalink)  
Antiguo 12/12/2008, 12:04
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: obtener el ultimo dia del mes

Hola,

También a la clase calendar le puedes sumar y restar periodos. A la fecha inicial (día 1 del mes) puedes sumarle 1 mes y seguidamente restar 1 día, así te da la fecha del último día del mismo mes (es lo que yo hago para obtenerlo).

Saludos,
  #4 (permalink)  
Antiguo 12/12/2008, 13:30
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: obtener el ultimo dia del mes

Con el método que usa el, es directo: calFin.getActualMaximum(Calendar.DAY_OF_MONTH) .
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #5 (permalink)  
Antiguo 12/12/2008, 18:00
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: obtener el ultimo dia del mes

Hola,

De acuerdo ... el método más adecuado es getActualMaximum().
(Solamente comenté otra forma de hacerlo ... )

Saludos,

ps:

Según la documentación "Subclasses should, if possible, override this with a more efficient implementation."; por ese motivo todavía estoy buscando una "implementación más eficiente", aunque yo todavía tengo algunas dudas al respecto, y solamente deseaba proponer otro método.
  #6 (permalink)  
Antiguo 13/12/2008, 05:56
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: obtener el ultimo dia del mes

Hola,
No quería decir que no puedas hacerlo de otra forma, mis disculpas si ha sonado así. Es que pensaba que creías que el metodo que usaba él era más largo por que había mucho código cuando el método para conseguirlo era sólo una llamada.

Creo que lo que dices de la documentación se refiere a subclasses de Calendar, como por ejemplo GregorianCalendar, y por eso la forma más eficiente seguramente sea la que usa internamente el API, que ya se habrán ocupado ellos de que sea eficiente. ¿Tienes algo que te indique hacer esa llamada no es eficiente? Si es así, se podría investigar por qué e intentar solucionarlo.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #7 (permalink)  
Antiguo 13/12/2008, 11:45
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: obtener el ultimo dia del mes

Hola,

No hay problema GreenEyed.
Supongo que en la clase GregorianCalendar ya fue optimizado.

Todavía tengo algunas dudas respecto al mejor método, y en mi caso, necesitaba calcular varios periodos mensuales de muchos registros, sigo investigando si existe alguna forma más eficiente (en función de velocidad, que es lo que yo necesito para varias aplicaciones).

Por el momento uso un método u otro indistintamente, por que no he notado la diferencia, y solamente era una 'anotación' extra fuera de contexto.

Saludos,
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 02:10.