Java, calcula el número de días entre dos fechas [duplicado]
Posible duplicado:
cálculo de la diferencia entre dos instancias de fecha de Java
En Java, quiero calcular la cantidad de días entre dos fechas.
En mi base de datos se almacenan como un DATE
tipo de datos, pero en mi código son cadenas.
Quiero calcular el número de días entre esas dos cadenas.
Nota: esta respuesta se escribió en 2011. Recomendaría usar java.time
ahora en lugar de Joda Time.
Bueno, para empezar, sólo debes tratarlos como cadenas cuando sea necesario. La mayoría de las veces deberías trabajar con ellos en un tipo de datos que realmente describa los datos con los que estás trabajando.
Te recomendaría que uses Joda Time , que es una API mucho mejor que Date
/ Calendar
. Parece que deberías usar el LocalDate
tipo en este caso. Luego puedes usar:
int days = Days.daysBetween(date1, date2).getDays();
Java 8 y posterior:ChronoUnit.between
Utilice instancias de ChronoUnit
para calcular la cantidad de tiempo en diferentes unidades (días, meses, segundos).
Por ejemplo:
ChronoUnit.DAYS.between(startDate,endDate)
prueba este código
Calendar cal1 = new GregorianCalendar();
Calendar cal2 = new GregorianCalendar();
SimpleDateFormat sdf = new SimpleDateFormat("ddMMyyyy");
Date date = sdf.parse("your first date");
cal1.setTime(date)
date = sdf.parse("your second date");
cal2.setTime(date);
//cal1.set(2008, 8, 1);
//cal2.set(2008, 9, 31);
System.out.println("Days= "+daysBetween(cal1.getTime(),cal2.getTime()));
esta función
public int daysBetween(Date d1, Date d2){
return (int)( (d2.getTime() - d1.getTime()) / (1000 * 60 * 60 * 24));
}