From 77f28d43090625b8880efe9623f0e0a3c521fa14 Mon Sep 17 00:00:00 2001 From: PC Date: Sun, 7 Jan 2024 22:45:43 +0100 Subject: [PATCH] Terminkalender --- Semesteraufgabe Terminkalendar/.classpath | 10 ++ Semesteraufgabe Terminkalendar/.gitignore | 1 + Semesteraufgabe Terminkalendar/.project | 17 +++ .../org.eclipse.core.resources.prefs | 2 + .../src/Termin.java | 22 ++++ .../src/Terminkalender.java | 113 ++++++++++++++++++ 6 files changed, 165 insertions(+) create mode 100644 Semesteraufgabe Terminkalendar/.classpath create mode 100644 Semesteraufgabe Terminkalendar/.gitignore create mode 100644 Semesteraufgabe Terminkalendar/.project create mode 100644 Semesteraufgabe Terminkalendar/.settings/org.eclipse.core.resources.prefs create mode 100644 Semesteraufgabe Terminkalendar/src/Termin.java create mode 100644 Semesteraufgabe Terminkalendar/src/Terminkalender.java diff --git a/Semesteraufgabe Terminkalendar/.classpath b/Semesteraufgabe Terminkalendar/.classpath new file mode 100644 index 0000000..f00af9b --- /dev/null +++ b/Semesteraufgabe Terminkalendar/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Semesteraufgabe Terminkalendar/.gitignore b/Semesteraufgabe Terminkalendar/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/Semesteraufgabe Terminkalendar/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/Semesteraufgabe Terminkalendar/.project b/Semesteraufgabe Terminkalendar/.project new file mode 100644 index 0000000..8bb560a --- /dev/null +++ b/Semesteraufgabe Terminkalendar/.project @@ -0,0 +1,17 @@ + + + Semesteraufgabe Terminkalendar + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Semesteraufgabe Terminkalendar/.settings/org.eclipse.core.resources.prefs b/Semesteraufgabe Terminkalendar/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/Semesteraufgabe Terminkalendar/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/Semesteraufgabe Terminkalendar/src/Termin.java b/Semesteraufgabe Terminkalendar/src/Termin.java new file mode 100644 index 0000000..d67f16d --- /dev/null +++ b/Semesteraufgabe Terminkalendar/src/Termin.java @@ -0,0 +1,22 @@ +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class Termin { + String datum; + String ereignis; + + SimpleDateFormat germanFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm"); + Date ddatum; + + Termin (String ereignis, String datum) throws ParseException{ + this.datum = datum ; + this.ereignis = ereignis; + ddatum = germanFormat.parse(datum); + } + + public String toString() { + return ereignis + " am " + germanFormat.format(ddatum).replace(" ", " um ") + " Uhr" ; + } + +} diff --git a/Semesteraufgabe Terminkalendar/src/Terminkalender.java b/Semesteraufgabe Terminkalendar/src/Terminkalender.java new file mode 100644 index 0000000..24943d3 --- /dev/null +++ b/Semesteraufgabe Terminkalendar/src/Terminkalender.java @@ -0,0 +1,113 @@ +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Scanner; + +public class Terminkalender { + + static ArrayList Termine = new ArrayList<>(); + static SimpleDateFormat germanFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm"); + + public static void main(String[] args) throws ParseException { + System.out.println("Schreiben Sie \"Help\" um alle Eingaben zu sehen"); + try (Scanner scanner = new Scanner(System.in)) { + while (true) { + String eingabe = scanner.nextLine(); + if (eingabe.equalsIgnoreCase("Help")) { + System.out.println( + "Termin erstellen ---> Anlegen eines Termins \nTermin löschen ---> Löschen eines Termins \nTermin bearbeiten ---> Datum/Ereignis eines Termins bearbeiten \nTermine einsehen ---> Anzeigen aller Termine \nEnde ---> Programm beenden"); + } else if (eingabe.equalsIgnoreCase("Termin erstellen")) { + System.out.println("Wann ist ihr Termin ? (Bitte Datum und Uhrzeit in folgendem Format: dd.MM.yyyy HH:mm)"); + String datum = scanner.nextLine(); + System.out.println("Und was ist an diesem Datum ? "); + String ereignis = scanner.nextLine(); + try { + Termine.add(terminAnlegen(ereignis, datum)); + System.out.println("Termin erfolgreich erstellt "); + } + catch (Exception e) { + System.out.println("Termin konnte nicht erstellt werden, überprüfen Sie bitte noch einmal das Datum !"); + } + } else if (eingabe.equalsIgnoreCase("Termin löschen")) { + if (Termine.isEmpty()) { + System.out.println("Es sind keine Termine zum löschen vorhanden "); + } else { + System.out.println("Welchen Termin möchten Sie löschen ? (Bitte Ereignis nennen)"); + String lereignis = scanner.nextLine(); + terminLoeschen(lereignis); + } + } else if (eingabe.equalsIgnoreCase("Termine einsehen")) { + if (Termine.isEmpty()) { + System.out.println("Es sind keine Termine vorhanden"); + } + for (Termin a : Termine) { + System.out.println(a.toString()); + } + } else if (eingabe.equalsIgnoreCase("Termin bearbeiten")) { + if (Termine.isEmpty()) { + System.out.println("Es sind keine Termine zum bearbeiten vorhanden"); + continue; + } + System.out.println("Welchen Termin möchten Sie bearbeiten ? (Bitte Ereignis nennen)"); + String bereignis = scanner.nextLine(); + System.out.println("Möchten Sie das Datum oder das Ereignis bearbeiten ? "); + String input = scanner.nextLine(); + if (input.equalsIgnoreCase("Datum")) { + System.out.println("Geben Sie das neue Datum ein"); + String ndatum = scanner.nextLine(); + datumBearbeiten(bereignis, ndatum); + } else if (input.equalsIgnoreCase("Ereignis")) { + System.out.println("Nennen Sie das neue Ereignis ?"); + String nereignis = scanner.nextLine(); + ereignisBearbeiten(bereignis, nereignis); + } + } + else if (eingabe.equalsIgnoreCase("Ende")) { + System.out.println("Programm wurde beendet"); + break; + } + else { + System.out.println("Ungültige Eingabe (Schreiben Sie \"Help\" für weitere Informationen"); + } + } + } + } + + public static Termin terminAnlegen(String ereignis, String adatum) throws ParseException { + Termin termin = new Termin(ereignis, adatum); + return termin; + } + + public static String getEreignis(int i) { + Termin termin = Termine.get(i); + return termin.ereignis; + } + + public static void terminLoeschen(String ereignis) { + for (int i = 0; i < Termine.size(); i++) { + if (getEreignis(i).equalsIgnoreCase(ereignis)) { + Termine.remove(i); + System.out.println("Termin erfolgreich gelöscht"); + } + } + } + + public static void datumBearbeiten(String ereignis, String ndatum) throws ParseException { + for (int i = 0; i < Termine.size(); i++) { + if (getEreignis(i).equalsIgnoreCase(ereignis)) { + Termin termin = Termine.get(i); + termin.ddatum = germanFormat.parse(ndatum); + System.out.println("Datum des Termins " + ereignis + " erfolgreich geändert "); + } + } + } + + public static void ereignisBearbeiten(String ereignis, String nereignis) { + for (int i = 0; i < Termine.size(); i++) { + if (getEreignis(i).equalsIgnoreCase(ereignis)) { + Termine.get(i).ereignis = nereignis; + System.out.println("Ereignis erfolgreich geändert"); + } + } + } +}