Hallo,
zwei Schnitzer entdecke ich in deinem Code. Zum einen verlangt der Zeller-Algorithmus eine Verschiebung der Monate Januar und Februar:
Delphi-Quellcode:
if month < 3
then Dec(year);
month := Succ((month + 9)
mod 12);
Und dann gilt für den Operator mod in Object Pascal nicht
a mod b = -a mod b, sondern
a mod b = a - (a div b) * b, also solltest du die Vorzeichenbehandlung entsprechend ändern:
if ergebnis < 0 then Inc(ergebnis, 7);
Grüße vom marabu