1106 | maskdate | Datum formatieren | ||||||||
| ||||||||||
Abzugebende Files: maskdate.txt, maskdate.java |
DD | Tag des Monats zweistellig (01 - 31) |
DAY | Wochentagsname (englisch) |
MM | Monat als Zahl zweistellig (01 - 12) |
MON | Monat englisch, auf 3 Zeichen abgekürzt |
MONTH | Monat englisch, ausgeschrieben |
YY | Jahr zweistellig (die letzten 2 Stellen) |
YYYY | Jahr vierstellig |
Platzhalter koennen innerhalb einer Formatiertung auch mehrfach auftreten (z.B.: DD/DD/DD)
Um Unklarheiten zu vermeiden, hier die englischen Wochentags- und Monatsnamen:
MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY
JANUARY FEBRUARY MARCH APRIL MAY JUNE JULY AUGUST SEPTEMBER OCTOBER NOVEMBER
DECEMBER
JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC
Weiters dürfen im Formatstring folgende Trennzeichen vorkommen: / . _ -
Ihr Programm soll das eingelesene Datum entsprechend des Formatstrings aufbereiten und ausgeben.
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.
Lesen Sie weiters den Formatstring ein, der nur aus den oben genannten Platzhaltern und Trennzeichen bestehen darf.
Wochentags- und Monatsnamen sind in Großbuchstaben auszugeben.
Das Unterstreichungszeichen ("_") als Trennzeichen soll in der Ausgabe durch ein Leerzeichen ersetzt werden.
Sind die eingegebenen Daten inhaltlich nicht korrekt , so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.
Eingabedaten |
13-04-1993 DD.MONTH_YYYY
20/10/1989 DD_MM_YYYY 29/02.1971 DD/MON/YY |
Ausgabedaten |
13.APRIL 1993
20 10 1989 FALSCHE EINGABE |
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 maskdate < maskdate.i1 > maskdate.out1
Das erzeugte File maskdate.out1 können Sie dann mit dem mitgelieferten Outputfile maskdate.o1 vergleichen.