|
Woche des Jahres berechnen |
|
|
|
|
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;
|