Einzelnen Beitrag anzeigen

galex9

Registriert seit: 3. Nov 2006
17 Beiträge
 
#5

AW: Arbeitszeit - Summe Sollstunden

  Alt 5. Dez 2016, 18:37
Ich würde solche Berechnungen nicht in der DB machen, da man auch Wochenenden und Feiertage berücksichtigen muss.
Damit die Sollzeit nicht jedes mal berechnet wird kann man die pro Mitarbeiter und Monat ruhig in DB speichern.

Code:
function WorkDaysInMonth(AMonth: TDate): Byte;
var
  i: Word;
  CalcDate: TDate;
begin
  if not FCalculateTime
  then Result := ReadWorkDaysFromDb()
  else begin
    Result := 0;
    CalcDate := StartOfTheMonth(AMonth);
    for i := 1 to DaysInMonth(CalcDate)
    do begin
      // Wochenende und Feiertage nicht berechnen
      if (DayOfTheWeek(CalcDate) < DaySaturday) and
         (not IsHoliday(CalcDate))
      then Inc(Result);

      CalcDate := IncDay(CalcDate);
    end;
  end
end;

.....

WorkTimeInMonth := WorkDaysInMonth(Date) * WorkTimePerDayForEmployee;
  Mit Zitat antworten Zitat