Verwandte Beiträge

Woche des Jahres berechnen PDF Drucken E-Mail
Benutzerbewertung: / 0
SchwachPerfekt 
Geschrieben von: Alessandro   
Dienstag, den 03. November 2009 um 11:39 Uhr

Die Woche des Jahres zu berechnen ist nicht so einfach wie es auf den ersten Blick scheint. Mal hat das Jahr 52, mal 53 Wochen, ein Teil der ersten Woche gilt noch zum alten Jahr, etc. Hier ein kleiner nützlicher Code, der das ganze Berücksichtigt (Nach ISO 8601 Standard):

// DayOfWeek function returns integer 1..7 equivalent to Sunday..Saturday.
// ISO 8601 weeks start with Monday and the first week of a year is the one which
// includes the first Thursday

function ISOWeekNumber(DateTime: TDateTime; var YearOfWeekNumber, WeekDay: Integer): Integer;
var
  Month, Day: Word;
begin
  WeekDay := ((DayOfWeek(DateTime) - ISOFirstWeekDay + 7) mod 7) + 1;
  DateTime := DateTime - WeekDay + 8 - ISOFirstWeekMinDays;
  DecodeDate(DateTime, YearOfWeekNumber, Month, Day);
  Result := (Trunc(DateTime - EncodeDate(YearOfWeekNumber, 1, 1)) div 7) + 1;
end;