1064 |
Check |
Datumsueberpruefung |
Kategorie: | Datum |
Klasse: | leicht |
Eingabe: | String |
Ausgabe: | siehe Spez |
|
Abzugebende Files: Check.txt, Check.java |
Kurzbeschreibung:
Ein String soll eingelesen werden, der ein Datum enthält; die Gültigkeit dieses Datums soll überprüft werden.
Allgemeine Hinweise:
-
Ihr Programm darf nur genau jene Ausgabedaten liefern, die in der Spezifikation
verlangt werden. Die Ausgaben Ihres Programmes werden automatisch mit
Referenzdaten verglichen; etwaige Abweichungen führen zu Punkteabzügen!
-
Testen Sie Ihr Programm vor der Abgabe mit der mitgelieferten Eingabedatei.
Geben Sie Ihre Lösung erst ab, wenn die Ausgaben Ihres Programmes mit der
ebenfalls mitgelieferten Ausgabedatei übereinstimmen! Testen Sie Ihr
Programm auch mit anderen Eingabedaten.
-
Verwenden Sie nur das von uns mitgelieferten Package eprog
für Ihre Ein/Ausgaben. Programme, die Packages oder Klassen ausserhalb der verwendeten Übungsumgebung (Java2, Standard Edition, Version 1.3.1_1) verwenden, können von uns
nicht getestet werden und werden mit 0 Punkten bewertet!
-
Schreiben Sie Ihr Programm möglichst allgemein und kommentieren Sie es gut.
Erstellen Sie weiters eine übersichtliche und verständliche Dokumentation.
Damit erhöhen Sie Ihre Chancen, daß andere Studenten in den nächsten Runden
Ihr Programm wählen und Ihnen damit zu Zusatzpunkten verhelfen!
Aufgabenstellung:
Lesen Sie einen String ein, der ein Datum enthält. Dieses Datum muß in folgendem Format vorliegen:
TT.MM.JJ
Hierbei ist zu beachten, daß in den Eingabedaten jede der Komponenten Tag,
Monat und Jahr zweistellig angegeben sein muß, also gegebenenfalls mit
führender Null.
Ihr Programm soll prüfen, ob es sich dabei um ein gültiges Datum handelt.
Achten Sie insbesondere darauf, ob der Tag zum Monat paßt; es gibt einen 31.
März, aber keinen 31. April!
Dabei ist das Jahr als "19JJ" zu interpretieren; 01.01.94 bezeichnet also den
1. Jänner 1994.
Für die Überprüfung ist es wichtig festzustellen, ob das eingelesene Jahr ein
Schaltjahr ist. Schaltjahre sind Jahre, die durch 4 teilbar sind; ausgenommen
sind Jahreszahlen, die durch 100, aber nicht durch 400 teilbar sind (z.B. 1992
ist ein Schaltjahr, 1900 nicht, 2000 schon).
Eingabedaten:
Lesen Sie einen String ein, der im oben genannten Format eingegeben werden
soll.
Ausgabedaten:
Wenn der String im korrekten Format eingegeben wurde, so geben Sie "J" aus,
wenn das Datum gültig ist und "N", wenn das Datum nicht gültig ist.
Anschließend geben sie einen Zeilenvorschub aus.
Fehlerbehandlung:
Sind die eingegebenen Daten inhaltlich nicht korrekt oder erfüllen nicht die
Bedingungen, so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.
Beispiele:
Eingabedaten
|
12.12.90
12.23.67
1e.02.88
|
Ausgabedaten
|
J
N
FALSCHE EINGABE
|
Testen:
Diese Beispiele dienen nur zur Verdeutlichung der Spezifikation und
müssen nicht korrekt formatiert sein. Die korrekte Formatierung entnehmen Sie
bitte dem mitgelieferten Outputfile. Zum Testen Ihrer Lösung
können Sie aus den mitgelieferten Eingabedaten wie folgt eine Ausgabedatei
erzeugen:
java Check < Check.i1 > Check.out1
Das erzeugte File Check.out1 können Sie dann mit dem mitgelieferten Outputfile Check.o1 vergleichen.