before fixes: // входные данные
Tue Jan 25 20:40:00 MSK 3916 // new Date(2015, 12, 25, 20, 40) - неверно передан год и месяц, должно быть new Date(115, 11, 25, 20, 40)
Sun Jul 20 00:00:00 MSK 1969
Mon Dec 09 00:00:00 MSK 3889 // new Date(1989, 11, 9) - неверно передан год и месяц, должно быть new Date(89, 10, 9)
Sat Jan 01 00:00:00 MSK 2000
after fixes: // выходные данные
Fri Dec 25 20:40:00 MSK 2015 // Исправлено
Sun Jul 20 00:00:00 MSK 1969
Thu Nov 09 00:00:00 MSK 1989 // Исправлено
Sat Jan 01 00:00:00 MSK 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) {
//напишите тут ваш код
Date current = new Date();
brokenDates.forEach(date -> {
if (date.after(current)) {
if (date.getMonth() == 0) {
date.setMonth(11);
date.setYear((date.getYear() % 1900) - 1);
} else {
date.setMonth(date.getMonth() - 1);
date.setYear(date.getYear() % 1900);
}
}
});
}
}