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

Diferencia en Meses entre 2 Fechas

Estas en el tema de Diferencia en Meses entre 2 Fechas en el foro de Java en Foros del Web. Hola Alguien tiene alguna idea de como sacar la diferencia entre 2 fechas (objetos tipo Date) expresada en Meses ? Hasta ahora solo encuentro respuesta ...
  #1 (permalink)  
Antiguo 12/01/2005, 14:16
 
Fecha de Ingreso: enero-2005
Mensajes: 16
Antigüedad: 19 años, 3 meses
Puntos: 0
Diferencia en Meses entre 2 Fechas

Hola
Alguien tiene alguna idea de como sacar la diferencia entre 2 fechas (objetos tipo Date) expresada en Meses ?
Hasta ahora solo encuentro respuesta en cuanto a días transcurridos, ,
(tampoco se trata de divirdirlos entre 30, xq hay meses de 31 y esta Febrero de 28 , o 29)
Si alguien tiene idea de como hacerlo me avisa
Gracias!!
Daniel
  #2 (permalink)  
Antiguo 13/01/2005, 10:20
 
Fecha de Ingreso: enero-2005
Mensajes: 16
Antigüedad: 19 años, 3 meses
Puntos: 0
Encontre una clase que se supone que saca la diferencia en meses, pero igual tiene algunos problemas por ejem entre el 16-11-2004 y el 13-01-2005 hay
1 mes, (serían 2 meses al 16-01-2005) pero el programa me devuelve que la diferencia es de 2 meses ...
Si alguien puede darme una mano..

public int getMonths(GregorianCalendar g1, GregorianCalendar g2) {
int elapsed = 0;
GregorianCalendar gc1, gc2;
Date d1,d2;

if (g2.after(g1)) {
gc2 = (GregorianCalendar) g2.clone();
gc1 = (GregorianCalendar) g1.clone();
}
else {
gc2 = (GregorianCalendar) g1.clone();
gc1 = (GregorianCalendar) g2.clone();
}


while ( gc1.before(gc2) ) {
gc1.add(Calendar.MONTH, 1);
elapsed++;

}
return elapsed;
}
  #3 (permalink)  
Antiguo 13/01/2005, 14:53
 
Fecha de Ingreso: enero-2005
Mensajes: 16
Antigüedad: 19 años, 3 meses
Puntos: 0
Ok , se me ocurrio la respuesta.
No se si haya dado el caso de una auto-respuesta ..pero bueh..
Gracias ..a mi

public int getMonths(GregorianCalendar g1, GregorianCalendar g2) {
int elapsed = -1; // Por defecto estaba en 0 y siempre asi no haya pasado un mes contaba 1)
GregorianCalendar gc1, gc2;
Date d1,d2;

if (g2.after(g1)) {
gc2 = (GregorianCalendar) g2.clone();
gc1 = (GregorianCalendar) g1.clone();
}
else {
gc2 = (GregorianCalendar) g1.clone();
gc1 = (GregorianCalendar) g2.clone();
}

while ( gc1.before(gc2) ) {
gc1.add(Calendar.MONTH, 1);
elapsed++;
}

if (gc1.get(Calendar.DATE)==(gc2.get(Calendar.DATE))) elapsed++; // si es el mismo dia cuenta para la suma de meses
return elapsed;
}
  #4 (permalink)  
Antiguo 25/02/2010, 12:16
 
Fecha de Ingreso: febrero-2010
Mensajes: 1
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Diferencia en Meses entre 2 Fechas

Buena solución.

Gracias por publicarla !
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 06:40.