Hallo gangs-taas,
das Problem liegt in der Rekursion selber. Du veränderst einen var Parameter innerhalb einer Rekursion. Eine Rekursion braucht aber immer ihren eigenen kleinen "Arbeitsbereich". Das ganze lässt sich damit so lösen:
Delphi-Quellcode:
function ErsterTagDerWoche(Datum : TDateTime): TDateTime;
var
i : integer ;
begin
i := DayOfTheWeek(Datum);
If i <> 1 Then
begin
result := ErsterTagDerWoche(IncDay(Datum,-1));
end else
begin // Rekursionsabbruch vergessen :-(
result := Datum;
end;
end;
Der Beitrag von Medium zeigt, wie man eine Rekursion aber auch einfach auflösen kann
Greez, Chris
[Edit]Rekursionsabbruch vergessen
[/Edit]