man könnte es notfalls noch etwas kürzen
Delphi-Quellcode:
procedure AddWochentage(AMonat, AWochentag: Byte; ADestList: TList<Date>);
var start: TDateTime;
i: Integer;
begin
start := EncodeDate(YearOf(Now), AMonat, 1);
for i := 0 to DaysInMonth(start) - 1 do
if DayOfWeek(start + i) - 1 = AWochentag then
ADestList.Add(start + i);
end;