1090 woche3 Wochentagsberechnung
Kategorie:Datum
Klasse:mittel
Eingabe:String
Ausgabe:siehe Spez
Abzugebende Files: woche3.txt, woche3.java

Kurzbeschreibung:

Der Wochentag eines eingelesenen Datums soll ermittelt und ausgegeben werden.

Allgemeine Hinweise:

Aufgabenstellung:

Lesen Sie einen String ein, der ein Datum enthält. Dieses Datum muß in einem der folgenden Formate vorliegen:

"TTMMJJ" oder "Tag*Monat*Jahr", wobei * für ein beliebiges Trennzeichen (keine Ziffer, kein Buchstabe) steht und beide Trennzeichen identisch sein müssen.

Hierbei ist zu beachten, daß im ersten Fall jede der Komponenten Tag, Monat und Jahr zweistellig angegeben sein muß, also gegebenenfalls mit führender Null. Die Reihenfolge Tag, Monat, Jahr ist in beiden Eingabeformaten vorgeschrieben.

Ihr Programm soll auch die Gültigkeit des eingelesenen Datums prüfen. Das Jahr soll als 19JJ interpretiert werden; 010192 und 1/1/92 bezeichnen also beide den 1. Jänner 1992.

Ermitteln Sie den Wochentag dieses Datums und geben Sie diesen aus.

Für die Ermittlung des Wochentages können Sie folgende Formel benutzen; diese liefert den Wochentag des 1. Jänner eines gegebenen Jahres. Daraus können Sie dann den Wochentag des gegebenen Datums ermitteln.

Wochentag 1.1. = (Jahr + floor((Jahr-1)/4) - floor((Jahr-1)/100) + floor((Jahr-1)/400)) mod 7

wobei floor(x) für die größte ganze Zahl <= x steht.

Diese Formel liefert 0 für Sonntag, 1 für Montag, ... , 6 für Samstag.

Eingabedaten:

Lesen Sie Tag, Monat und Jahr des Datums als String in einem der oben genannten Formate ein.

Ausgabedaten:

Bei korrekten Eingabedaten soll Ihr Programm den Wochentag als String in Großbuchstaben ausgeben ("MONTAG", "DIENSTAG", "MITTWOCH", "DONNERSTAG", "FREITAG", "SAMSTAG" oder "SONNTAG"); anschließend einen Zeilenvorschub.

Fehlerbehandlung:

Sind die eingegebenen Daten inhaltlich nicht korrekt , so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.

Beispiele:

Eingabedaten
011293

16/11/93

Ausgabedaten
MITTWOCH

DIENSTAG

Bemerkung: 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 woche3 < woche3.i1 > woche3.out1

Das erzeugte File woche3.out1 können Sie dann mit dem mitgelieferten Outputfile woche3.o1 vergleichen.