Thema: Delphi Zellerscher Algotithmus

Einzelnen Beitrag anzeigen

The_Tremendous

Registriert seit: 10. Nov 2004
65 Beiträge
 
#4

Re: Zellerscher Algotithmus

  Alt 7. Jun 2005, 14:54
So, Problem gelöst!!!


Sollte mal jemand den gleichen Algorithmus brauchen, stelle ich ihn hiermit mal zur Verfügung:

Delphi-Quellcode:
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;
Viel Spaß damit , The Tremendous
  Mit Zitat antworten Zitat