DruckenMister WongFacebook

Buß- und Bettag

System Win9x, WinNT, Win2000, WinXP, Vista, Win7
Ab Delphi-Version Delphi 1
Letzte Änderung 21.01.2012

Folgende Funktion berechnet das Datum des Buß- und Bettages eines bestimmten Jahres:

  1. function WochenTag(AYear, AMonth, ADay: integer): integer;
  2. var i: integer;
  3. begin
  4.   i := DayOfWeek(EncodeDate(AYear, AMonth, ADay))-1;
  5.   if i=0 then i:=7;
  6.   result := i;
  7. end;
  8.  
  9. procedure Buss_BetTag(year: integer; var bday: integer);
  10. var b: integer;
  11. begin
  12.   b := WochenTag(year, 11, 1);
  13.   if b < 3 then
  14.     inc(b,7);
  15.   bday := 25-b;
  16. 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).