Вкратце по коду:
Создан дополнительно класс UserLog, в объекты которого парсятся строки с логов, есть метод checkDate который возвращает список объектов UserLog в в зависимости от условий задачи по датам. Затем в каждом методе интерфейсов сначала формируется рабочий список workUserSet из объектов UserLog, а потом уже из него по условию вытягивается нужная инфа. Но валии не принимает методы getDateWhenUserLoggedFirstTime, getDateWhenUserSolvedTask и getDateWhenUserDoneTask, хотя все вроде выводится как надо и с датами в виде null, null . В метод getDateWhenUserLoggedFirstTime добавил комментарии построчно, другие два метода аналогичны. Также ещё добавлен класс UserLogDataComporator, как компоратор, для сортировки сета по дате.
Если у кого есть идеи, что не так, поделитесь. Заранее благодарю.
package com.javarush.task.task39.task3913;
import java.nio.file.Paths;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
public class Solution {
public static void main(String[] args) throws ParseException {
LogParser logParser = new LogParser(Paths.get("F:\\JavaProject\\GitRepository\\JavaRushTasks\\4.JavaCollections\\src\\com\\javarush\\task\\task39\\task3913\\logs"));
List<UserLog> logs = logParser.getUserLogList();
logs.forEach(userLog -> System.out.println(userLog.toString()));
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
//Date after = dateFormat.parse("30.08.2010 17:08:13");
System.out.println(logs.size());
System.out.println("===================");
Date after = null;
//Date before = dateFormat.parse("29.2.2028 5:4:7");
//Date before = dateFormat.parse("30.08.2010 17:08:13");
Date before = null;
//logParser.getAllUsers().forEach(System.out::println);
//System.out.println(logParser.getNumberOfUsers(after,before));
System.out.println(logParser.getDateWhenUserLoggedFirstTime("Eduard Petrovich Morozko",after,before));
//System.out.println(logParser.getDateWhenUserSolvedTask("Amigo",18, after, before));
}
}