Hallo!
Habe ein Programm geschrieben, dass ein paar Kalenderfunktionen bereit stellt. Mein Problem sind nun einige if-Bedingungen, die ich vereinfachen/entfernen soll.
Zuerst soll es aber mal eine Benutzereingabe überprüfen, ob die ein korrektes Datum darstellt.
Es soll also geprüft werden, ob das Jahr > 1, der Monat zwischen 1 und 12 und und der Tag für den eingegebenen Monat/Jahr korrekt ist. Anscheinden lässt sich die if-Bedingung vereinfachen; ich komm nur nicht drauf, wie, da die Bedingungen für ein korrektes Datum ja erforderlich sind.
Diese Methode soll überprüfen, ob ein spezielles Tagesdatum korrekt ist. Dies wäre der Fall, wenn es entweder zwischen 1 und 4 oder zwischen 15 und 31 liegt. Hier ist ebenfalls die if-Bedingung zu vereinfachen.
In dieser Methode soll überprüft werden, ob ein Jahr ein Schaltjahr war. Die Berechnung erfolgt korrekt, aber in Zeile 67 kann ebenfalls die if-Bedingung vereinfacht/entfernt werden. Ich denke aber mal, dass die erforderlich ist, da für Jahre vor 1582 nur jedes 4. Jahr ein Schaltjahr war...
Ich weiß einfach nicht, wie ich die if-Bedingungen ändern soll. Vielleicht überseh ich ja einfach nur was. Kann mir da jemand nen Tipp geben?
Danke schonmal...
Habe ein Programm geschrieben, dass ein paar Kalenderfunktionen bereit stellt. Mein Problem sind nun einige if-Bedingungen, die ich vereinfachen/entfernen soll.
Zuerst soll es aber mal eine Benutzereingabe überprüfen, ob die ein korrektes Datum darstellt.
Code:
boolean pruefeEingabe(int tag, int monat, int jahr) {
28
29 if (jahr >= 1 && monat >= 1 && monat <= 12 && tag >= 1
32 && tag <= tageDesMonats(monat, jahr)) {
33 return true;
34 } else {
35 return false;
36 }
37
38 } // pruefeEingabe
Es soll also geprüft werden, ob das Jahr > 1, der Monat zwischen 1 und 12 und und der Tag für den eingegebenen Monat/Jahr korrekt ist. Anscheinden lässt sich die if-Bedingung vereinfachen; ich komm nur nicht drauf, wie, da die Bedingungen für ein korrektes Datum ja erforderlich sind.
Code:
boolean pruefeDatum1582(int tag) {
47
48 if (tag >= 5 && tag <= 14) {
49 return false;
50 } else {
51 return true;
52 }
53
54 } // pruefeDatum1582
Diese Methode soll überprüfen, ob ein spezielles Tagesdatum korrekt ist. Dies wäre der Fall, wenn es entweder zwischen 1 und 4 oder zwischen 15 und 31 liegt. Hier ist ebenfalls die if-Bedingung zu vereinfachen.
Code:
boolean pruefeSCHALTjahr(int jahr) {
62
63 if (jahr > 1582 && jahr % 400 == 0) {
64 return true;
65 } else if (jahr > 1582 && jahr % 4 == 0 && jahr % 100 != 0) {
66 return true;
67 } else if (jahr <= 1582 && jahr % 4 == 0) {
68 return true;
69 } else {
70 return false;
71 }
72
73 } // pruefeSCHALTjahr
In dieser Methode soll überprüft werden, ob ein Jahr ein Schaltjahr war. Die Berechnung erfolgt korrekt, aber in Zeile 67 kann ebenfalls die if-Bedingung vereinfacht/entfernt werden. Ich denke aber mal, dass die erforderlich ist, da für Jahre vor 1582 nur jedes 4. Jahr ein Schaltjahr war...
Ich weiß einfach nicht, wie ich die if-Bedingungen ändern soll. Vielleicht überseh ich ja einfach nur was. Kann mir da jemand nen Tipp geben?
Danke schonmal...