Thema: Delphi Werktage zählen

Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Werktage zählen

  Alt 9. Jul 2006, 13:08
Hier noch etwas Code, der ohne brute force auskommt:

Delphi-Quellcode:
uses
  DateUtils; // DayOfTheWeek(1) = Montag

function DaysBetweenEx(d1, d2: Cardinal): Cardinal;
// SA und SO werden nicht gezählt
var
  n, r, wd: Cardinal;
begin
  n := Succ(DaysBetween(Trunc(d1), Trunc(d2)));
  Result := n - (n div 7) shl 1;
  r := n mod 7;
  if r = 0 then Exit;
  if d2 > d1
    then wd := DayOfTheWeek(d1)
    else wd := DayOfTheWeek(d2);
  n := Pred(wd + r);
  if 6 in [wd, n] then Dec(Result);
  if 7 in [wd, n] then Dec(Result);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat