Показать прошедшие дни вашего рождения от нуля лет до текущего времени

Есть код:

Scanner scanner = new Scanner(System.in);
System.out.println("Введите дату вашего рождения в формате (день/месяц/год)");
String s = scanner.nextLine().replaceAll("\\D", ".");
SimpleDateFormat format1 = new SimpleDateFormat("dd.MM.yyyy");
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy - EEEE");
Calendar c = Calendar.getInstance();
c.setTime(format1.parse(s));
Calendar date = Calendar.getInstance();
if (c.before(date)){
    System.out.println(format.format(c.getTime()));
}
else {
    System.out.println("Введенная дата не наступила!");
}

Не могу понять, как сделать вывод всех дней рождений. То есть в консоли после ввода даты рождения должно быть:

0 - 31.12.1990 - Понедельник

1 - 31.12.1991 - Вторник

Подскажите, пожалуйста, каким методом можно вывести в консоли даты всех дней рождений.


Ответы (2 шт):

Автор решения: Miron
if(c.after(date)) {
    System.out.println("Введенная дата не наступила!");
} else {
    while(c.before(date)) {
        System.out.println(format.format(c.getTime()));
        c.add(Calendar.YEAR, 1);
    }
}

Консоль:

Введите дату вашего рождения в формате (день/месяц/год) 04/04/2012
04.04.2012 - среда
04.04.2013 - четверг
04.04.2014 - пятница
04.04.2015 - суббота
04.04.2016 - понедельник
04.04.2017 - вторник
04.04.2018 - среда
04.04.2019 - четверг
04.04.2020 - суббота

→ Ссылка
Автор решения: Кири
package com.company;
import java.util.Calendar;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class Main {

    public static void main(String[] args) {
    int day = 22;
    int month = 12;
    int year = 2001;
        DateFormat dateFormat=new SimpleDateFormat("dd.MM.yyyy - EEEE ");
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.MONTH,month -1);
        calendar.set(Calendar.DAY_OF_MONTH,day );
        calendar.set(Calendar.YEAR,year );
    Calendar date = Calendar.getInstance();
    if(calendar.after(date)) {
        System.out.println("Введенная дата не наступила!");
    } else {
        while(calendar.before(date)) {
            System.out.println(dateFormat.format(calendar.getTime()));
            calendar.add(Calendar.YEAR, 1);
        }
    }
}

}

→ Ссылка