Zum Inhalt springen

Java-Code: "Datumspruefer" HILFE!!!


grafnepal

Empfohlene Beiträge

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 von flashpixx
Code Tags eingefügt
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...