From 4ecddf0b65854cedb7a2c11f19a6beb367dbdfb4 Mon Sep 17 00:00:00 2001 From: Dejan Date: Sun, 22 Aug 2021 23:54:38 +0200 Subject: [PATCH] add sort by time --- plan.txt | 6 ++-- .../src/main/java/de/dejan/todolist/Main.java | 32 ++++++++++++++++--- .../de/dejan/todolist/SortToDoByDate.java | 13 ++++++++ .../src/main/java/de/dejan/todolist/ToDo.java | 25 +++++++++++++-- 4 files changed, 66 insertions(+), 10 deletions(-) create mode 100644 todolist_editor/src/main/java/de/dejan/todolist/SortToDoByDate.java diff --git a/plan.txt b/plan.txt index 0965a90..3e6215a 100644 --- a/plan.txt +++ b/plan.txt @@ -1,10 +1,12 @@ Funktionen: +-ToDo deadline# +-ToDo-Liste nach Datum/Uhrzeit sortieren# +-ToDo-Liste abspeichern -ToDo hinzufügen# -ToDo abhaken# --ToDo deadline -ToDo löschen# -ToDo auflisten# --ToDo-Liste abspeichern + - - -über Jarvis neue Einträge hinzufügen \ No newline at end of file diff --git a/todolist_editor/src/main/java/de/dejan/todolist/Main.java b/todolist_editor/src/main/java/de/dejan/todolist/Main.java index 7552ec9..d6ef877 100644 --- a/todolist_editor/src/main/java/de/dejan/todolist/Main.java +++ b/todolist_editor/src/main/java/de/dejan/todolist/Main.java @@ -1,5 +1,7 @@ package de.dejan.todolist; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; @@ -22,7 +24,8 @@ public class Main{ System.out.println("[2]ToDos auflisten"); System.out.println("[3]ToDo abhaken/als nicht erledigt markieren"); System.out.println("[4]ToDo löschen"); - System.out.println("[5]Beenden"); + System.out.println("[5]ToDos nach Deadline sortieren"); + System.out.println("[6]Beenden"); System.out.print(">>>"); int in=Integer.parseInt(System.console().readLine()); @@ -32,7 +35,8 @@ public class Main{ case 2: listToDo(); break; case 3: done(); break; case 4: delTask(); break; - case 5: System.exit(0); + case 5: sortByDeadline(); break; + case 6: System.exit(0); } } @@ -42,7 +46,19 @@ public class Main{ String in=System.console().readLine(); - ToDo task=new ToDo(tasks.size(), in, false); + System.out.println("Datum und Zeit im Format [dd.MM.yyyy HH:mm] angeben!:"); + String deadlineAsString=System.console().readLine(); + + + + ToDo task; + task = new ToDo(tasks.size(), in, false); + + try { + task.setDeadline(new SimpleDateFormat("dd.MM.yyyy HH:mm").parse(deadlineAsString)); + } catch (ParseException e) { + e.printStackTrace(); + } tasks.add(task); return; } @@ -50,7 +66,7 @@ public class Main{ public static void listToDo(){ System.out.println("\n\nToDo:"); System.out.println("====="); - System.out.println("Nr. | ToDo | erledigt"); + System.out.println("Nr. | ToDo | Deadline | erledigt"); for (int i = 0; i < tasks.size(); i++) { char done_; if (tasks.get(i).getDone()) { @@ -58,7 +74,8 @@ public class Main{ }else{ done_='N'; } - System.out.println("["+tasks.get(i).getID()+"] "+tasks.get(i).getContent()+" ["+done_+"]"); + System.out.println("["+tasks.get(i).getID()+"] | ["+tasks.get(i).getContent()+"] | [" + +new SimpleDateFormat("dd.MM.yyyy HH:mm").format(tasks.get(i).getDeadline())+"] | ["+done_+"]"); } } @@ -81,4 +98,9 @@ public class Main{ tasks.remove(Integer.parseInt(System.console().readLine())); } + public static void sortByDeadline(){ + Collections.sort(tasks, new SortToDoByDate()); + System.out.println("Sortiert..."); + } + } diff --git a/todolist_editor/src/main/java/de/dejan/todolist/SortToDoByDate.java b/todolist_editor/src/main/java/de/dejan/todolist/SortToDoByDate.java new file mode 100644 index 0000000..8f6430c --- /dev/null +++ b/todolist_editor/src/main/java/de/dejan/todolist/SortToDoByDate.java @@ -0,0 +1,13 @@ +package de.dejan.todolist; + +import java.util.*; + +public class SortToDoByDate implements Comparator{ + + @Override + public int compare(ToDo t1, ToDo t2) { + // https://stackoverflow.com/questions/5927109/sort-objects-in-arraylist-by-date + return t1.getDeadline().compareTo(t2.getDeadline()); + } + +} diff --git a/todolist_editor/src/main/java/de/dejan/todolist/ToDo.java b/todolist_editor/src/main/java/de/dejan/todolist/ToDo.java index 8c72cab..5d6bceb 100644 --- a/todolist_editor/src/main/java/de/dejan/todolist/ToDo.java +++ b/todolist_editor/src/main/java/de/dejan/todolist/ToDo.java @@ -1,11 +1,24 @@ package de.dejan.todolist; -public class ToDo { +import java.util.*; + +public class ToDo{ private int theID; private String theContent; private boolean theDone; - String theDeadline; + + // https://docs.oracle.com/javase/8/docs/api/java/util/Date.html + // https://stackoverflow.com/questions/5927109/sort-objects-in-arraylist-by-date + private Date theDeadline; + + + public ToDo(int id, String content, boolean done, Date deadline){ + theID=id; + theContent=content; + theDone=done; + theDeadline=deadline; + } public ToDo(int id, String content, boolean done){ theID=id; @@ -13,7 +26,6 @@ public class ToDo { theDone=done; } - //get-& set-methods public void setID(int id){ theID=id; @@ -39,5 +51,12 @@ public class ToDo { return theDone; } + public void setDeadline(Date d){ + theDeadline=d; + } + + public Date getDeadline(){ + return theDeadline; + } }