cómo obtener una lista de fechas entre dos fechas en java

Resuelto Arivu2020 asked hace 14 años • 0 respuestas

Quiero una lista de fechas entre la fecha de inicio y la fecha de finalización.

El resultado debe ser una lista de todas las fechas, incluidas la fecha de inicio y finalización.

Arivu2020 avatar Apr 22 '10 15:04 Arivu2020
Aceptado

Paquete java.time

Si está utilizando Java 8 , existe un enfoque mucho más claro. El nuevo paquete java.time en Java 8 incorpora las características de la API Joda-Time .

Su requisito se puede resolver utilizando el siguiente código:

String s = "2014-05-01";
String e = "2014-05-10";
LocalDate start = LocalDate.parse(s);
LocalDate end = LocalDate.parse(e);
List<LocalDate> totalDates = new ArrayList<>();
while (!start.isAfter(end)) {
    totalDates.add(start);
    start = start.plusDays(1);
}
Yadu Krishnan avatar May 29 '2014 12:05 Yadu Krishnan

En 2010, sugerí usar Joda-Time para eso.

Tenga en cuenta que Joda-Time está ahora en modo de mantenimiento. Desde 1.8 (2014), deberías usar java.time.

Añade un día a la vez hasta llegar a la fecha de finalización:

int days = Days.daysBetween(startDate, endDate).getDays();
List<LocalDate> dates = new ArrayList<LocalDate>(days);  // Set initial capacity to `days`.
for (int i=0; i < days; i++) {
    LocalDate d = startDate.withFieldAdded(DurationFieldType.days(), i);
    dates.add(d);
}

No sería demasiado difícil implementar su propio iterador para hacer esto también, sería aún mejor.

Albert avatar Apr 22 '2010 09:04 Albert