Hallo!
Ich sitze gerade wieder einmal bei meiner Softawareentwicklungshausübung und soll einen Geburtstagskalender programmieren, welcher später dann durch eingabe des Geburtstages den Wochentag des heuriegen Geburtstages ausgibt.
In meiner Angabe steht, dass das Monat und der Tag als "M or MM" und "D or DD" eingelesen werden kann. Also 02.01.1995 oder 1.2.1995 (beides erlaubt)
Ich bin mir jetzt nicht sicher, wie ich das programmiere, dass ich beide Eingabeformen erlauben kann.
Ich habe jetzt mal eine Variante probiert, bin mir aber nicht sicher, ob diese erlaubt und richtig ist, bzw. treten bei mir bei 08 und 09 Fehler auf. (The literal 08 of type int is out of range)
Wie kann ich diese Fehler ausbessern?
Schon mal vielen Dank für euer Bemühen!
LG Julia
Ich sitze gerade wieder einmal bei meiner Softawareentwicklungshausübung und soll einen Geburtstagskalender programmieren, welcher später dann durch eingabe des Geburtstages den Wochentag des heuriegen Geburtstages ausgibt.
In meiner Angabe steht, dass das Monat und der Tag als "M or MM" und "D or DD" eingelesen werden kann. Also 02.01.1995 oder 1.2.1995 (beides erlaubt)
Ich bin mir jetzt nicht sicher, wie ich das programmiere, dass ich beide Eingabeformen erlauben kann.
Ich habe jetzt mal eine Variante probiert, bin mir aber nicht sicher, ob diese erlaubt und richtig ist, bzw. treten bei mir bei 08 und 09 Fehler auf. (The literal 08 of type int is out of range)
Wie kann ich diese Fehler ausbessern?
Java:
public class Birthdaycalendar {
public static void main(String[]args)
{
System.out.print("Enter your birth year (YYYY):");
short y = Input.readShort();
System.out.print("Enter your birth month (M or MM, 0..12):");
byte m = Input.readByte();
System.out.print("Enter your birth day (D or DD, 0..31):");
byte d = Input.readByte();
if (y<=1582 || y>=2014) {
System.out.print("Invalid year"); }
else if (m>12 ||m<01) {
System.out.print("Invalid month");}
else if (m==1 || m==01 || m==03 || m==3 || m==5 || m==05 || m==7|| m==07
|| m==8 || m==08 || m==10 || m==12 && d>=0 && d<=30)
{ System.out.print("Invalid numder of days for this month!");
}
else if (m==4 || m==04|| m==6 || m==06 || m==9 || m==09 || m==11 && (d>=0 && d>30))
{System.out.print("Invalid numder of days for this month!");
}
else if (y%4 == 0 && (y%100 != 0 || y%400 == 0) && m==2|| m==02 && d>=29 && d>=0)
{System.out.print("Invalid numder of days for this month!");
}
else if (y%4 != 0 && (y%100 == 0 || y%400 != 0) && m==2 || m==02 && d>=28 && d>=0)
{System.out.print("Invalid numder of days for this month!");
}
else { System.out.print("Valid Birthdate");
}
}
Schon mal vielen Dank für euer Bemühen!
LG Julia