Calcular la diferencia en días entre dos fechas en Java
Queremos saber los días que han pasado entre dos fechas. Ejemplo: 10-09-2009 y 3-9-2009, su diferencia serían 7 días. Para ello, lo calcularíamos con el siguiente código:
java.util.Date fechaAnterior, fechaPosterior;
diferencia= ( fechaAnterior.getTime() - fechaPosterior.getTime() )/ MILLSECS_PER_DAY;
Ejemplo
Vamos a calcular los días que han pasado desde una fecha dada hasta el día de hoy.
final long MILLSECS_PER_DAY = 24 * 60 * 60 * 1000; //Milisegundos al día
java.util.Date hoy = new Date(); //Fecha de hoy
int año = 2009; int mes = 10; int dia = 22; //Fecha anterior
Calendar calendar = new GregorianCalendar(año, mes-1, dia);
java.sql.Date fecha = new java.sql.Date(calendar.getTimeInMillis());
long diferencia = ( hoy.getTime() - fecha.getTime() )/MILLSECS_PER_DAY;
System.out.println(diferencia);
Nota: Fijémosnos que al inicializar el Calendar hemos restado uno al mes. Ésto se debe a que este parámetro empieza en cero, correspondiendo el cero a Enero, el uno a Febrero, ...
Actualización: Ante los diversos comentarios al respecto, he creado un post en el que se explica cómo calcular la diferencia en días utilizando la librería Joda Time, podéis encontrarlo aquí: http://felinfo.blogspot.com.es/2015/10/calcular-la-diferencia-en-dias-entre.html
Tweet