Hallo ich verstehe bei folgendem Programm, dass immer den nächsten Tag angeben soll, also Benutzereingabe z.B. 01.02. => Ausgabe 02.02
die if-Schleife nicht. Die Switch-Schleife ist soweit klar und selbsterklärend. Kann mir jemand helfen?
die if-Schleife nicht. Die Switch-Schleife ist soweit klar und selbsterklärend. Kann mir jemand helfen?
Code:
public class NextDate {
public static void main(String[] args) {
int day;
int month;
int nrOfDays = 0;
// Datum einlesen
day = Input.readInt();
month = Input.readInt();
System.out.println("Start date: " + day + "." + month + ".");
// Tage pro Monat ermitteln -> wird unten benötigt
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
nrOfDays = 31;
break;
case 2:
nrOfDays = 28;
break;
case 4: case 6: case 9: case 11:
nrOfDays = 30;
break;
default:
nrOfDays = -1;
break;
} // end of switch
// Auf ungültiges Datum prüfen
if (!((1 <= day) && (day <= 31)) || (nrOfDays < 0)) {
System.out.println("Erroneous date given!");
}
// Datum gültig? -> Folgedatum ermitteln
else {
if (day < nrOfDays) //Das ist klar
day = day + 1;
else { //Also wenn else (day>= nrOfDays) soll day=1 sein???
day = 1;
month = month + 1;
}
if (month == 13) //month kann doch nicht den Wert 13 annehmen laut switch??
month = 1;
// Ergebnis (Folgedatum) ausgeben
System.out.println("Next date: " + day + "." + month + ".");
}
} // end of main
}