Delphi-Quellcode:
while dayIterator.DayOfWeek <> DaySaturday do
dayIterator := dayIterator.AddDays(-1);
Das kann man auch mathematisch lösen.
DayOfWeek oder
DayOfTheWeek geben den aktuellen Wochentag zurück.
Und nun braucht man nur noch die nötige Differenz zum gewünschten Samstag berechnen, also anhand dessen Wert für DayOfWeek/DayOfTheWeek.
Ergibt dann (glaub ich)
Result := Date - (DayOfWeek(Date) + 0{DayOfWeek für Samstag} + DaysOfWeek) mod DaysOfWeek;
, bzw. gekürzt das bereits erwähnte
Result := Date - DayOfWeek(Date);
.