function TForm1.GetEastern(y: integer): TDateTime; const eday : array[0..18] of Integer = (14,3,23,11,31,18,8,28,16,5,25,13,2,22,10,30,17,7,27); var dix,m : Integer; dt : TDateTime; begin dix:=eday[seYear1.Value mod 19]; if dix<21 then m:=4 else m:=3; dt:=EncodeDate(y,m,dix); m:=DayofTheWeek(dt); if m=7 then dt:=IncDay(dt,1); Result:=DateOf(EndOfTheWeek(dt)); end; procedure TForm1.GetFDays; var dt : TDateTime; i : integer; begin fdays[0]:=EncodeDate(seYear1.Value,1,1); //Neujahr fdays[1]:=EncodeDate(seYear1.Value,1,6); //Heil.dr.Könige dt:=GetEastern(seYear1.Value); fdays[2]:=IncDay(dt,-2); //Karfreitag fdays[3]:=IncDay(dt,1); //Ostermontag fdays[4]:=EncodeDate(seYear1.Value,5,1); //1.Mai fdays[5]:=IncDay(dt,39); //Himmelfahrt fdays[6]:=IncDay(dt,50); //Pfingstmontag fdays[7]:=IncDay(fdays[6],10); //Fronleichnam dt:=EncodeDate(seYear1.Value,12,24); i:=0; repeat dt:=IncDay(dt,-1); if DayOfTheWeek(dt)=7 then inc(i); until i=5; repeat dt:=IncDay(dt,-1) until DayOfTheWeek(dt)=3; fdays[8]:=EncodeDate(seYear1.Value,8,15); //Maria Himmelfahrt fdays[9]:=EncodeDate(seYear1.Value,10,3); //Tag d.d.Einheit fdays[10]:=EncodeDate(seYear1.Value,10,31); //Reformationstag fdays[11]:=EncodeDate(seYear1.Value,11,1); //Allerheiligen fdays[12]:=dt; //Buß-u.Bettag fdays[13]:=EncodeDate(seYear1.Value,12,25); //1.Weihnachtstag fdays[14]:=EncodeDate(seYear1.Value,12,26); //2.Weihnachtstag end;