# To Do Liste



## DrewiN_ (13. Dez 2015)

Guten Abend, wir müssen eine ToDoList erstellen und sind leider seit geraumer Zeit etwas am grübeln und kommen so gut wie gar nicht weiter. 

Hier soll ein Element in eine ToDoListe einsortiert werden. Sortiert wird nach Datum, wenn 2 Tasks das selbe Datum haben, wird der neue Task hinter den alten Task einsortiert. 

```
public void add(ToDoListEntry newTask) {
       
       
    }
```



Diese Methode entfernt das erste Element von der ToDo-Liste und gibt die restliche Liste zurück. Hat die Liste keine Elemente wird null zurückgegeben.

```
public ToDoListEntry done() {
        return null;
    }
```

Diese Methode soll den ersten Eintrag der ToDo-Liste zurückgeben. Hat die Liste keine Elemente wird null zurückgegeben. (identisch mit Getter von first)

```
public ToDoListEntry toDoNext() {
        return null;
    }
```



Diese Methode gibt eine neue ToDo-Liste aus, mit allen Einträgen,
 die bis zum angegebenen Datum abgeschlossen sein müssen.


```
public ToDoList toDoUntil(LocalDate date) {
        return null;
    }
```



```
public String print() {
        String result = "";
        if (first == null) {
            result = "Leere ToDo-Liste!\n";
        } else {
            ToDoListEntry zeiger = first;
            while (zeiger != null) {
                result += "Bis " + zeiger.date + " Task: "
                        + zeiger.task +"\n";
                zeiger = zeiger.next;
            }
        }
        System.out.println(result);
        return result;
    }
   
}
```


Functionality: 



Spoiler: Functionality





```
import java.time.LocalDate;

public class Functionality {

    public static void main(String[] args) {
       
        System.out.println("Test 00: Leere Liste");
        ToDoList list2016 = new ToDoList();
       
        list2016.print();
        /*
        * Ausgabe:
        * Leere ToDo-Liste!
        */
       
        System.out.println("Test 01: add");
        list2016.add(new ToDoListEntry(LocalDate.of(2016, 8, 15), "Nachklausur"));
        list2016.add(new ToDoListEntry(LocalDate.of(2016, 5, 3), "lernen"));
        list2016.add(new ToDoListEntry(LocalDate.of(2016, 6, 3), "Abgabe_Hausarbeit"));
        list2016.add(new ToDoListEntry(LocalDate.of(2016, 6, 3), "Abgabe_Hausarbeit2"));
        list2016.add(new ToDoListEntry(LocalDate.of(2016, 10, 11), "Nachklausur2"));
        list2016.print();
        /*
         * Ausgabe:
         * Bis 2016-05-03 Task: lernen
         * Bis 2016-06-03 Task: Abgabe_Hausarbeit
         * Bis 2016-06-03 Task: Abgabe_Hausarbeit2
         * Bis 2016-08-15 Task: Nachklausur
         * Bis 2016-10-11 Task: Nachklausur2
         */
       
        System.out.println("Test 02: done");
        list2016.done();
       
        list2016.print();
        /*
         * Ausgabe:
         * Bis 2016-06-03 Task: Abgabe_Hausarbeit
         * Bis 2016-06-03 Task: Abgabe_Hausarbeit2
         * Bis 2016-08-15 Task: Nachklausur
         * Bis 2016-10-11 Task: Nachklausur2
         */
       
        System.out.println("Test 03: toDoNext");
        ToDoListEntry entry = list2016.toDoNext();
       
        System.out.println("Bis " + entry.date + " Task: "
                        + entry.task +"\n");
        /*
         * Ausgabe:
         * Bis 2016-06-03 Task: Abgabe_Hausarbeit
         */
       
       
        System.out.println("Test 04: toDoUntil");
        ToDoList list2016Until20_9 = list2016.toDoUntil(LocalDate.of(2016, 9, 20));
       
        list2016Until20_9.print();       
        /*
         * Ausgabe:
         * Bis 2016-06-03 Task: Abgabe_Hausarbeit
         * Bis 2016-06-03 Task: Abgabe_Hausarbeit2
         * Bis 2016-08-15 Task: Nachklausur
         */
       
       
    }
}
```




Bitte nur Tipps möchte das selbstverständlich alleine machen, aber ich habe irgendwie keinen Ansatz. 

Danke und schönen Abend noch.


----------



## javampir (13. Dez 2015)

kann man das mit einfach verkettete liste innerhalb einer pipe zusammenfassen? anhand deiner print() methode vermute ich es, aber wir kennen die struktur deiner liste nicht.
wo genau liegt das problem?


----------

