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