Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 

Re: GetStartOfFirstWeekInYearISO8601

  Alt 10. Jul 2006, 15:29
Delphi-Quellcode:
function DateOfWeek(Year, Week: Word): TDateTime;
begin
  Result := EncodeDate(Year, 1, 1);
  Result := Result - (DayOfWeek(Result -2) +3) mod 7 +3 + (Week -1) * 7;
end;
Berechnet das Datum zu einer Kalenderwoche und Jahr, kommt ohne Schleifen aus, kann mit negativen Kalenderwochen arbeiten und auch mit zu großen Kalenderwochenangaben.

Delphi-Quellcode:
function DayOfWeekGerman(ADate: TDateTime): Integer;
begin
  Result := DayOfWeek(ADate) -1;
  if Result <= 0 then Result := 7;
end;

function WeekOfDate(A: TDateTime): Integer;
var
  Day: Integer;
  Y,M,D: Word;
begin
  Day := DayOfWeekGerman(A);
  DecodeDate(A +4 -Day, Y, M, D);
  Result := Round(((A +8 -Day) - EncodeDate(Y, 1, 1)) / 7);
end;
WeekOfDate() berechnet die KW zu einem Datum.

KEINE Garantie auf Richtigkeit !!

Gruß Hagen
  Mit Zitat antworten Zitat