182 votes

Comment itérer dans une plage de dates en Java ?

Dans mon script, j'ai besoin d'effectuer un ensemble d'actions sur une plage de dates, étant donné une date de début et de fin.
Veuillez me donner des conseils pour réaliser ceci en utilisant Java.

for ( currentDate = starDate; currentDate < endDate; currentDate++) {

}

Je sais que le code ci-dessus est tout simplement impossible, mais je le fais pour vous montrer ce que j'aimerais réaliser.

0voto

Januka samaranyake Points 1077

Cela vous aidera à commencer 30 jours en arrière et à boucler jusqu'à la date d'aujourd'hui. Vous pouvez facilement modifier la plage de dates et la direction.

private void iterateThroughDates() throws Exception {
    Calendar start = Calendar.getInstance();
    start.add(Calendar.DATE, -30);
    Calendar end = Calendar.getInstance();
    for (Calendar date = start; date.before(end); date.add(Calendar.DATE, 1))
        {
        System.out.println(date.getTime());
        }
}

0voto

L'extrait suivant (qui utilise java.time.format de Java 8) peut être utilisé pour itérer sur une plage de dates :

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    // Any chosen date format maybe taken  
    LocalDate startDate = LocalDate.parse(startDateString,formatter);
    LocalDate endDate = LocalDate.parse(endDateString,formatter);
    if(endDate.isBefore(startDate))
    {
        //error
    }
    LocalDate itr = null;
    for (itr = startDate; itr.isBefore(endDate)||itr.isEqual(itr); itr = itr.plusDays(1))
    {
        //Processing  goes here
    }

La méthode plusMonths()/plusYears() peut être choisie pour l'incrémentation des unités de temps. L'incrémentation d'un seul jour est effectuée dans l'illustration ci-dessus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X