Stephan Bazalka
EProg Runde 3, BspNr. 3126
Matrikelnummer: 0225725
eMail: bazalka@gmx.net

WICHTIGE ANMERKUNG
------------------
Lt. Spezifikation der Teillösung, die ich bekommen
habe (Wochentag.java), wird jedes Datum als 19JJ
interpretiert! Daher liefert die Eingabe des heutigen
Datums einen "falschen" Wochentag!
Das ist aber Absicht im Sinne der Spezifikation der
Teillösung.
(Ich fürchte nur, sie wird nicht mitgeliefert, deswegen
schreib ichs überall hin!


PROGRAMMBESCHREIBUNG
--------------------
Das Programm liest Daten der Form
TTMMJJHHMM bzw.
Tag*Monat*Jahr*Stunden*Minuten
ein. Daraus wird mit Wochentag.java (ein bei der
Spezifkation mitgeliefertes Bsp.) der Wochentag
berechnet.
Ausgegeben werden Zahlenkolonnen für eine LED-Anzeige.


ZUM TESTEN
----------
Ich würde empfehlen, beim Überprüfen des Programms an jede
"Zeile" des Arrays mit den Zahlenkolonnen in Klammern einfach
den Wert anzuhängen, den die Zahlenkolonne darstellen soll.
Es ist ein bisschen mühsam, nur anhand von Zahlen die richtige
Darstellung zu überprüfen.
In Wochentag.java gibts auch so einen Array für die Wochentage,
den könnte man zur Vereinfachung des Tests auch ändern.
Aus genau diesem Grund sind diese Arrays Strings und nicht
Integers!


FUNKTIONSWEISE
--------------

einlesen()	Daten werden eingelesen
untersuchen ()	Um welche Eingabe handelt es sich?

	wenn Trennzeichen (TZ) vorhanden sind:
	mitTrennzeichenBerechnen()	kitzelt die Daten aus dem 
					Eingabestring zwischen den TZ heraus

	wenn keine TZ vorhanden sind:
	ohneTrennzeichenBerechnen()	splittet Daten nach fixem Muster auf

ausgeben()	Gibt das Ergebnis aus.

***

einlesen():
Liest einen String ein.

untersuchen():
Zeichen für Zeichen wird überprüft, ob es sich um eine zahl,
einen Buchstaben (sind nicht erlaubt) oder ein anderes Zeichen
(also ein Trennzeichen) handelt.
Wenn alle Zeichen Zahlen sind und die Eingabe exakt 10 Zeichen
lang ist, wird von der main-Methode ohneTZberechnen aufgerufen.
Wenn vier idente TZ vorkommen, kommt mitTZberechnen zum Zug.
In jedem anderen Fall ist die Eingabe fehlerhaft.

ohneTrennzeichenBerechnen():
In den Array daten[] werden Tag, Monat, Jahr, Stunden, Minuten
gespeichert. Mittels substring wird die Eingabe in "Zweier-Stückerl"
zerlegt.

mitTrennzeichenBerechnen():
Funktioniert ähnlich, nur werden die Positionen der Zerstückelung
durch die Trennzeichen bestimmt. Denn in diesem Fall darf zB der Tag
auch nur einstellig eingegeben werden.
Vorher wird noch überprüft, zwischen den TZ nur max. zwei Zeichen
stehen.

ausgeben(String):
Diese Methode wird bei einem Fehler aufgerufen.
Damit das Programm relativ leicht in andere eingebunden werden kann,
habe ich auf im Sourcecode verteilte println, Sytem.exit(), etc.
verzichtet und sie stattdessen dort zusammengefasst.

ausgeben(int[]):
Es wird Array felder[] initialisiert. Der Wert von felder[0] entspricht
der Zahlenkolonne, die für "0" ausgegeben werden soll.
Die Lösung auf eprog.sourceforge.net hat zB diese Kolonnen sehr oft im
Quelltext stehen.
Anschließend wird das Datum an Wochentag.java übergeben. Diese Lösung
stammt nicht von mir, sie war bei der Spezifikation dabei und ich habe
sie nur adaptiert.
Im Anschluss werden die Zahlenkolonnen ausgegeben. Die genaue Funktions-
weise der Division ist im Quelltext erklärt.

***

Ich hoffe, die Funktionsweise ist verständlich. Bei Fragen, Anregungen,
Beschwerden: bazalka@gmx.net