grafnepal Geschrieben 27. Mai 2010 Geschrieben 27. Mai 2010 (bearbeitet) Hi, brauche eure Hilfe mit der Aufgabe, hatte schon mal versucht geht aber net, wäre sehr dankbar für eure Hilfe!!!! Aufgabe: Entwickeln Sie eine Java- Klasse "Datumspruefer", die Methoden zur Überprüfung der Korrektheit eines eingegebenen Datums enthält. Das Datum wird in dem Format TT. MM. JJJJ eingegeben. Beachten Sie die Regeln aus der Übung Struktogramm : Datumsüberprüfung und halten Sie sich beim Algorithmus an Ihr Struktogramm. Entwickeln Sie eine Klasse "Start" mit der main-Funktion, die einen Testrahmen enthält, so dass das Programm die Korrektheit des Datums überprüft und anschließend die Meldung “Datum korrekt” bzw. “Datum ungültig” ausgibt. Anschließend wird der Benutzer aufgefordert erneut ein Datum einzugeben. Hinweise: Das Datum wird als String in dem angegebenen Format eingelesen. Der Datumsstring wird zerlegt in seine Bestandteile Tag, Monat, Jahr und jeder Bestandteil wird in ein Integer konvertiert. Anschließend wird das Datum von den Prüfmethoden überprüft. Wenn es korrekt ist, kommt die Meldung "Datum korrekt", wenn es nicht korrekt ist, kommt die Meldung "Datum ungültig". Dann darf der Benutzer erneut ein Datum zur Überprüfung eingeben. und das hatte ich ausprobiert: package meinPaket; import java.util.Scanner; public class Datumspruefer { public void pruefe(){ //String datum = "01.12.2010"; int tag; int monat; int jahr; boolean schaltjahr; boolean pruefeTag; boolean pruefeMonat; boolean pruefeJahr; int letzterTagMonat; Scanner scan = new Scanner( System.in ); System.out.println("Eingabe: "); schaltjahr = scan.hasNext(); tag = scan.nextInt(); monat = scan.nextInt(); jahr = scan.nextInt(); letzterTagMonat = scan.nextInt(); pruefeTag = scan.hasNext(); pruefeMonat = scan.hasNext(); pruefeJahr = scan.hasNext(); if (jahr%4==0&&!(jahr%100==0)||(jahr%400==0)) { schaltjahr = true; System.out.println("Datum ist korrekt"); } else { schaltjahr = false; System.out.println("Datum ist nicht korrekt"); } System.out.println(schaltjahr); if (monat==1||monat==3||monat==5||monat==7||monat==8||monat==9||monat==11){ letzterTagMonat=31; } if (monat==4||monat==6||monat==10||monat==12){ letzterTagMonat=30; } if (monat==2&&(schaltjahr=true)){ letzterTagMonat=28; System.out.println("Datum ist korrekt"); } else if (monat==2&&(schaltjahr=false)){ letzterTagMonat=29; System.out.println("Datum ist nicht korrekt"); } if (tag>=1&&(tag<=letzterTagMonat)){ pruefeTag=true; System.out.println("Datum ist korrekt"); } else { pruefeTag=false; System.out.println("Datum ist nicht korrekt"); } if (pruefeJahr==true&&(pruefeTag==true)&&(pruefeMonat==true)){ System.out.println("korrekt."); } else if (pruefeJahr=false||(pruefeTag=false)||(pruefeMonat=false)){ System.out.println("nicht korrekt."); } } } komme echt net weiter :upps:rolleyes: Bearbeitet 27. Mai 2010 von flashpixx Code Tags eingefügt Zitieren
MartinSt Geschrieben 27. Mai 2010 Geschrieben 27. Mai 2010 1. Benutze bitte die Codetags und entsprechende Codeformatierung. 2. Hast du ne Frage oder willst du jammern? Zitieren
flashpixx Geschrieben 27. Mai 2010 Geschrieben 27. Mai 2010 Bitte verwende Code-Tags, ich habe sie nachträglich ergänzt. Ich verweise einmal auf SimpleDateFormat (Java 2 Platform SE v1.4.2) Du kannst damit Strings parsen, so dass Du das Datum erhältst (siehe Methode parse). Die Parse-Methode wird bei falschen Daten eine Exception werfen, die Du abfangen kannst und somit einen Boolean erzeugst, der eben sagt "Datum korrekt" oder "Datum inkorrekt". Das ganze sollte in 3-4 Zeilen abgehandelt sein Zitieren
grafnepal Geschrieben 27. Mai 2010 Autor Geschrieben 27. Mai 2010 Frage 1: wie mache ich denn Code-Tags?? und Frage zur Uebung: ich muss ja die die variablen deklarieren, also monat so und so hat 31 tage oder 30 tage und so weiter, ob das was ich gemacht hatte überhapt richtig ist!!??? Danke Zitieren
flashpixx Geschrieben 27. Mai 2010 Geschrieben 27. Mai 2010 Frage 1: wie mache ich denn Code-Tags?? entweder eintippen [ CODE ] bzw [/ CODE ] (ohne Leerzeichen) oder den Editor verwenden und Frage zur Uebung: ich muss ja die die variablen deklarieren, also monat so und so hat 31 tage oder 30 tage und so weiter, ob das was ich gemacht hatte überhapt richtig ist!!??? Nein musst Du nicht. Wenn Du Dir die Klasse "SimpleDateFormat" und die dort genannte Methode "parse" anschaust, kannst Du direkt einen String passend parsen, wobei Du eben mit Hilfe einer Exception feststellen kannst, ob der String korrekt war, d.h. wenn keine Exception auftritt, ist das Datum richtig Zitieren
grafnepal Geschrieben 27. Mai 2010 Autor Geschrieben 27. Mai 2010 alles klar werde ich mal ausprobieren vielen dank erstmal!!! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.