Если у меня есть вектор, содержащий несколько несортированных файлов, как я могу классифицировать их по дате их последнего изменения?
что мне нужно сделать, это поместить файлы в 3 других вектора с последней измененной датой «Сегодня», «Вчера» и «Эта неделя».
Vector<File> files; //This vector contains all the files that need to be categorized
Vector<File> todayFiles; //Empty
Vector<File> yesterdayFiles; //Empty
Vector<File> weekFiles; //Empty
Я знаю, что могу использовать file.lastModified () для получения даты, но она возвращает дату в миллисекундах, отформатированную как long int, поэтому я не уверен, существует ли более простой способ сравнения и группировки дат без выполнения какая-то сложная арифметическая работа.
Я новичок в Java, поэтому понятия не имею, как подойти к этому вопросу, любая помощь будет признательна.
UPDATE
Мне удалось как-то заставить код работать, но он все еще не работает должным образом. Вот что у меня есть:
private Calendar cal;
private long todayTime;
this.cal = Calendar.getInstance();
this.cal.set(Calendar.HOUR_OF_DAY, 0);
this.cal.set(Calendar.HOUR, 0);
this.cal.set(Calendar.MINUTE, 0);
this.cal.set(Calendar.SECOND, 0);
this.cal.set(Calendar.MILLISECOND, 0);
this.todayTime = cal.getTimeInMillis();
Теперь, когда я пытаюсь добавить их в созданный мной вектор, он получает только те файлы, которые были изменены в PM сегодняшней даты:
for(int i = 0; i < this.files.size(); i++) {
if(this.files.get(i).lastModified() >= this.todayTime) {
this.today.add(this.files.get(i));
}
}
Есть что-нибудь, что я делаю не так? Кстати, спасибо за все замечательные ответы!