Hallo,
wie der Titel vielleicht schon Verrät, soll ich in JAVA ein Programm schreiben, bei dem man sein Geburtsadtum eingibt, dieses überprüft wird und damit nach Eingabe des aktuellen Datums das Alter berechnet wird.
Code 1:
Bei diesem Code funktioniert das Programm bei richtiger Eingabe einwandfrei.
Nur bei falscher Eingabe NACH dem ersten Buchstaben (index>0) gibt es eine Exception.
Ich denke das es etwas mit der FOR-Schleife zu tun hat, da ja keine Strings einem INTEGER zugewiesen werden können.
Hier nur die Prüfung des richting Syntax und Zuweisung zum neuen Speicher:
Code 2:
Ich komm nicht aus der ersten Schleife heraus.
Wie muss ich es richtig schreiben?
wie der Titel vielleicht schon Verrät, soll ich in JAVA ein Programm schreiben, bei dem man sein Geburtsadtum eingibt, dieses überprüft wird und damit nach Eingabe des aktuellen Datums das Alter berechnet wird.
Code 1:
Bei diesem Code funktioniert das Programm bei richtiger Eingabe einwandfrei.
Nur bei falscher Eingabe NACH dem ersten Buchstaben (index>0) gibt es eine Exception.
Ich denke das es etwas mit der FOR-Schleife zu tun hat, da ja keine Strings einem INTEGER zugewiesen werden können.
Hier nur die Prüfung des richting Syntax und Zuweisung zum neuen Speicher:
Java:
//Scanner
Scanner scan = new Scanner(System.in);
int tag = 0;
int monat = 0;
int jahr = 0;
int tag2 = 0;
int monat2 = 0;
int jahr2 = 0;
int fehlerzahl = 0;
int fehlerzahl2 = 0;
//Schleife 1: Prüfung des Geburtsdatums
do{
fehlerzahl = 0;
System.out.println();
System.out.println("Bitte geben sie ihr Geburtsdatum in folgender");
System.out.println("Formatierung an: TT.MM.JJJJ");
String eingabe = scan.next();
if(eingabe.length()==10){
for(int i=0;i<10;i++){
int asc = eingabe.codePointAt(i);
if((asc<45)||(asc>57)||(asc==47)){
fehlerzahl++;
}
if(fehlerzahl==0){
tag = Integer.parseInt(eingabe.substring(0,2));
monat = Integer.parseInt(eingabe.substring(3,5));
jahr = Integer.parseInt(eingabe.substring(6,10));
}
if((tag>31) || (monat>12) || (jahr<1880) || (jahr>2012)){
fehlerzahl++;
}
}
}
else{
fehlerzahl++;
}
}while(fehlerzahl>0);
Code 2:
Ich komm nicht aus der ersten Schleife heraus.
Java:
//Schleife 1: Prüfung des Geburtsdatums
do{
fehlerzahl = 0;
System.out.println();
System.out.println("Bitte geben sie ihr Geburtsdatum in folgender");
System.out.println("Formatierung an: TT.MM.JJJJ");
String eingabe = scan.next();
if(eingabe.length()==10){
for(int i=0;i<10;i++){
int asc = eingabe.codePointAt(i);
if((asc<46)||(asc>57)||(asc==47)){
fehlerzahl++;
}
if((tag>31) || (monat>12) || (jahr<1880) || (jahr>2012)){
fehlerzahl++;
}
}
}
else{
fehlerzahl++;
}
if(fehlerzahl==0){
tag = Integer.parseInt(eingabe.substring(0,2));
monat = Integer.parseInt(eingabe.substring(3,5));
jahr = Integer.parseInt(eingabe.substring(6,10));
}
System.out.println(fehlerzahl);
}while(fehlerzahl!=0);
Wie muss ich es richtig schreiben?