Hallo,
die Berechnung des Buß- und Bettags ist mit den o.g. Formeln so nicht richtig. Das Datum des Buß- und Bettages richtet sich nach dem Kirchenjahr.
Definition:
Mittwoch vor dem letzten Sonntag des Kirchenjahres. Dies ist per Definition, der Sonntag vor dem 1. Advent. Der Beginn des Kirchenjahres ist somit der 1. Advent.
Um nun den den Buß- und Bettag richtig zu berechnen, muss der der 4. Advent ermittelt werden und von diesem Datum müssen dann 32 Tage abgezogen werden.
Der 4. Advent ist als der Sonntag vor dem 1. Weihnachtsfeiertag definiert.
Delphi-Quellcode:
uses
DateUtils;
....
function BussBettag(aJahr:Integer):TDateTime;
var advent:TDateTime;
begin
// Datum des Heiligen Abends; 24.12
advent:=EncodeDate(aJahr);
// 4. Advent ermitteln; Sonntag vor dem 1.Weihnachtsfeiertag
while not (DayOfTheWeek(advent)=7) do advent:=advent-1.0;
//so, zum Schluss noch 32 Tage abziehen
Result:=advent-32;
end; // BussBettag
Siehe auch:
kalenderlexikon.de