Java, calcula el número de días entre dos fechas [duplicado]

Resuelto sgrgmngt asked hace 13 años • 10 respuestas

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 DATEtipo de datos, pero en mi código son cadenas.

Quiero calcular el número de días entre esas dos cadenas.

sgrgmngt avatar Aug 18 '11 13:08 sgrgmngt
Aceptado

Nota: esta respuesta se escribió en 2011. Recomendaría usar java.timeahora 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 LocalDatetipo en este caso. Luego puedes usar:

int days = Days.daysBetween(date1, date2).getDays();
Jon Skeet avatar Aug 18 '2011 06:08 Jon Skeet

Java 8 y posterior:ChronoUnit.between

Utilice instancias de ChronoUnitpara calcular la cantidad de tiempo en diferentes unidades (días, meses, segundos).

Por ejemplo:

ChronoUnit.DAYS.between(startDate,endDate)
javaLearner avatar Jun 11 '2014 13:06 javaLearner

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));
     }
Pratik avatar Aug 18 '2011 06:08 Pratik