before fixes:
Tue Jan 25 20:40:00 EET 3916
Sun Jul 20 00:00:00 EET 1969
Mon Dec 09 00:00:00 EET 3889
Sat Jan 01 00:00:00 EET 2000
after fixes:
Fri Dec 25 20:40:00 EET 2015
Sun Jul 20 00:00:00 EET 1969
Thu Nov 09 00:00:00 EET 1989
Sat Jan 01 00:00:00 EET 2000
вывод корректен.
package com.javarush.task.pro.task16.task1602;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/*
Подчищаем хвосты
*/
public class Solution {
public static void main(String[] args) {
List<Date> dateList = new ArrayList<>();
dateList.add(new Date(2015, 12, 25, 20, 40));
dateList.add(new Date("July 20, 1969"));
dateList.add(new Date(1989, 11, 9));
dateList.add(new Date("January 1, 2000"));
System.out.println("before fixes:");
dateList.forEach(System.out::println);
fixDate(dateList);
System.out.println("after fixes:");
dateList.forEach(System.out::println);
}
static void fixDate(List<Date> brokenDates) {
for (int i = 0; i < brokenDates.size(); i++) {
if (brokenDates.get(i).after(new Date())) {
int correctMonth;
int correctYearFix = 1900;
if (brokenDates.get(i).getMonth() == 0) {
correctMonth = 11;
correctYearFix = 1901;
} else {
correctMonth = brokenDates.get(i).getMonth() - 1;
}
int correctYear = brokenDates.get(i).getYear() - correctYearFix;
Date correctDate = brokenDates.get(i);
correctDate.setMonth(correctMonth);
correctDate.setYear(correctYear);
brokenDates.set(i, correctDate);
}
}
}
}