Hier einmal die Funktion WeekOfYear:
Delphi-Quellcode:
function WeekOfYear(D : TDateTime) : Byte;
var
aDate : Integer;
MinDate : tDateTime;
MaxDate : tDateTime;
Day, Month, Year : Word;
FirstDate : Integer;
begin
aDate := Trunc(D);
MinDate := EncodeDate(1900, 1, 1);
MaxDate := EncodeDate(3999, 12, 31);
if (aDate < MinDate) or (aDate > MaxDate) then begin
Result := 0;
exit;
end;
aDate := aDate + 3 - ((5 + DayOfWeek(aDate)) MOD 7);
DecodeDate(aDate, Year, Month, Day);
FirstDate := Trunc(EncodeDate(Year, 1, 1));
Result := 1 + (aDate - FirstDate) DIV 7;
end;
Jetzt würde ich zum übergebenen Datum einfach noch 2 Tage dazuzählen (wir tun also so, als ob der Samstag ein Monatg ist) und dann die resultierende Kalenderwoche nehmen.
cu
Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)