procedure TForm1.FormCreate(Sender: TObject);
begin
Run(Now);
end;
//------------------------------------------------------------------------------------------------
procedure TForm1.Run(Datum:TDateTime);
var
i,idx: Word;
tg:integer;
begin //<-proc
tg:=TageinMonat(datum);
//<- Unit 'eigene Datumsroutinen.pas'
Form1.Caption:=NamendesMonats(Now)+'
'+inttostr(CurrentYear);
Label1.Caption:='
Der Monat hat '+inttostr(tg)+'
Tage';
idx:=0;
FTArray:=GetHolidayTable(YearOf(Datum));
//<-- Unit 'Unit_Holidays.pas'
setlength(TagArray,tg);
for i:= 0
to tg-1
do
begin //<-for
inc(idx);
TagArray[i].TNum:=i+1;
TagArray[i].abwBegin:= '
';
TagArray[i].abwEnde:= '
';
if LblFeiertag(i+1,monthOf(Datum),FTArray)<>'
'
then //FTArray enthält Feiertage
begin
TagArray[i].TgName:=LblFeiertag(i+1,monthOf(Datum),FTArray);
//Feiertagsname, falls einer ist
TagArray[i].Werktag:=Tagarray[i-1].Werktag + 0;
//Feiertag ist kein Werktag
end
else
begin
TagArray[i].TgName:=NamendesTages(ArrIdxalsTagDatum(idx,MonthOf(Datum),YearOf(Datum)));
{Hier werden die Arbeitstage berechnet und falsch berechnet, wenn Komponente aufs Form kommt}
TagArray[i].Werktag:=Tagarray[i-1].Werktag + Weekend(TagArray,i);
// Zählt die Werktage (var Byte)
end;
//<-else
{ if (TagArray[i].TgName <> 'Samstag') and (TagArray[i].TgName <> 'Sonntag') then
begin
TagArray[i].abwBegin:= '18:00';
TagArray[i].abwEnde:= '20:00';
end;
if (TagArray[i].TgName = 'Freitag') then
begin
TagArray[i].abwBegin:= '18:00';
TagArray[i].abwEnde:= '21:00';
end;}
TagArray[i].LBH:= StdLohnmalMinuten(8.15, 132)*TagArray[i].Werktag;
//132min/Tag = (4*2Std + 1*3Std/Woche)
Label2.caption:= '
Im '+NamendesMonats(Now)+ '
ist der Monatsverdienst '+FloattostrF(TagArray[i].LBH,ffcurrency,5,2);
Label3.Caption:='
Der Monat hat '+inttostr(TagArray[High(TagArray)].werktag)+'
Werktage';
end;
//For
end;