procedure TFrmDatum.WochentagBestimmen(WochenTag :
String);
var ergebnis, day, month, year, century: integer;
ausgabe :
string;
begin
// Auslesen des Wochentages, des Monats, des Jahrhunderts und des Jahres
// aus dem vorgegebenem Datum
day := StrToInt(copy(WochenTag,1,2));
month := StrToInt(copy(WochenTag,4,2));
century := StrToInt(copy(WochenTag,7,2));
year := StrToInt(copy(WochenTag,9,2));
// Anpassung der Monate, da laut Zellerschem Algorithmus die Monate Januar und
// Februar zum Vorjahr gehören
if month < 3
then Dec(year);
month := Succ((month + 9)
mod 12);
// Zellerscher Algorithmus
ergebnis := (day +((13*month-1)
div 5) + year + (year
div 4) + (century
div 4)
-2*century)
mod 7;
// Erhöhen des Ergebnisses um 7 Tage, wenn ergebnis negativ ist
if ergebnis < 0
then
Inc(ergebnis, 7);
// Belegung der Tage zu dem jeweiligen Ergebnis
case ergebnis
of
0: ausgabe := '
Sonntag';
1: ausgabe := '
Montag';
2: ausgabe := '
Dienstag';
3: ausgabe := '
Mittwoch';
4: ausgabe := '
Donnerstag';
5: ausgabe := '
Freitag';
6: ausgabe := '
Samstag';
end;
ShowMessage('
Das Datum ' +WochenTag+ '
liegt auf einem ' + ausgabe);
end;