Ich habe eine Routine gesucht, die mir das Datum des Beginns der ersten Woche in einem Jahr liefert (nach ISO 8601). Da ich keine gefunden habe, habe ich mir selber eine geschrieben:
Delphi-Quellcode:
function GetStartOfFirstWeekInYearISO8601(const Y: integer): TDate;
var
i, W: integer;
TestDatum: TDate;
const
p: integer = 3;
begin
for i := 1 to 7 do
begin
TestDatum := EncodeDate(Y, 1, i);
W := WeekOfTheYear(TestDatum - p);
if W = 1 then
begin
Result := TestDatum - p;
BREAK;
end;
end;
end;
Gibt es eine einfachere Methode, um zu diesem Ergebnis zu kommen?
Ein kleines Testprogramm habe ich angehängt.