Aufgabe gelöst

This commit is contained in:
Marc Koch 2020-04-20 11:15:52 +02:00
parent 8abd967dbb
commit ad0b5d4d05
1 changed files with 54 additions and 9 deletions

View File

@ -1,13 +1,14 @@
package geburtstag;
/* Aufgabe a):
hier bitte die notwendigen imports ergänzen!
*/
import java.time.DateTimeException;
import java.time.LocalDateTime;
import java.util.Scanner;
public class Geburtstag {
@ -15,11 +16,10 @@ public class Geburtstag {
public static void main(String[] args) {
LocalDateTime myBirthday = null;
LocalDateTime jetzt=null;
LocalDateTime jetzt = null;
myBirthday = setMyBirthday();
System.out.println("Mein Geburtsdatum mit Geburtszeit ist:");
System.out.println(myBirthday);
@ -31,7 +31,7 @@ public class Geburtstag {
*/
jetzt = LocalDateTime.now();
System.out.println("Jetzt ist:");
System.out.println(jetzt);
@ -41,7 +41,7 @@ public class Geburtstag {
/* Die setMyBirthday-Methode */
public static LocalDateTime setMyBirthday() {
Scanner myInput = null;
Scanner myInput = new Scanner(System.in);
LocalDateTime tempDateTime = null;
/* Aufgabe b)
@ -52,13 +52,58 @@ public class Geburtstag {
*/
String eingabeDatum = "";
boolean eingabeKorrekt = false;
while (!eingabeKorrekt) {
System.out.println("Bitte geben Sie Ihren Geburtstag ein. (tt.mm.jjjj)");
eingabeDatum = myInput.nextLine();
if (eingabeDatum.matches("((0?[1-9])|([1-3][0-9])).(0?[0-9]|1[1-2]).[1-2][0-9][0-9][0-9]")) {
eingabeKorrekt = true;
} else {
System.err.println("Bitte beachten Sie das Eingabeformat!");
}
}
String[] datum = eingabeDatum.split("[.]");
eingabeKorrekt = false;
String eingabeZeit = "";
while (!eingabeKorrekt) {
System.out.println("Bitte geben Sie Ihre Geburts-Zeit ein. (hh:mm)");
eingabeZeit = myInput.nextLine();
if (eingabeZeit.matches("((1[0-9])|(2[0-3])|(0?[0-9])):(([1-5][0-9])|(0?[0-9])|60)")) {
eingabeKorrekt = true;
} else {
System.err.println("Bitte beachten Sie das Eingabeformat!");
}
}
String[] zeit = eingabeZeit.split("[:]");
int jahr = Integer.parseInt(datum[2]);
int monat = Integer.parseInt(datum[1]);
int tag = Integer.parseInt(datum[0]);
int stunde = Integer.parseInt(zeit[0]);
int minute = Integer.parseInt(zeit[1]);
try {
return LocalDateTime.of(jahr, monat, tag, stunde, minute);
} catch (DateTimeException dte) {
System.err.println("Das Format Ihrer Eingabe ist fehlerhaft.");
System.out.println("Ihre Eingabe:");
System.out.println(eingabeDatum);
System.out.println(eingabeZeit);
System.out.println();
return null;
}
/* Aufgabe d)
wenn z.B. der Wert für den Monat mit 13 eingegeben wird,
bricht das Programm mit einer Exception ab, wie heisst diese?
-> DateTimeException
Die Aufgaben e) bis g) sind in verschiedenen Varianten zu programmiere!
@ -79,8 +124,8 @@ public class Geburtstag {
*/
return tempDateTime;
}
}