Показать прошедшие дни вашего рождения от нуля лет до текущего времени
Есть код:
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);
}
}
}
}