Home » Tipps & Tricks » Algorithmen » Feiertage » Buß- und Bettag
Buß- und Bettag
Folgende Funktion berechnet das Datum des Buß- und Bettages eines bestimmten Jahres:
function WochenTag(AYear, AMonth, ADay: integer): integer; var i: integer; begin i := DayOfWeek(EncodeDate(AYear, AMonth, ADay))-1; if i=0 then i:=7; result := i; end; procedure Buss_BetTag(year: integer; var bday: integer); var b: integer; begin b := WochenTag(year, 11, 1); if b < 3 then inc(b,7); bday := 25-b; end;
Die Procedure wird folgendermaßen aufgerufen:
procedure TForm1.Button1Click(Sender: TObject); var BDay: Integer; begin Buss_BetTag(2001, BDay); //Jahr 2001 Label1.Caption := IntToStr(BDay); end;
Der Buß- und Bettag würde im Jahr 2001 auf den 25. fallen (November).