| Date2WeekNo Function |
Unit
QESBPCSDateTime
Declaration
Function Date2WeekNo(const DT: TDateTime): Integer;
Description
Weeks are assumed to start with Sunday. The week that Jan 1 occurs is the 1st week of the year, the Sunday AFTER Jan 1 would be the start of the 2nd week of the year. Note that this does mean that there can be 54 weeks in a year!
| Parameters |
| DT | Date/Time to be processed. |
Category
Date/Time Arithmetic Routines
Week Based Arithmetic RoutinesImplementation
function Date2WeekNo (const DT: TDateTime): Integer;
var
Year: Integer;
FirstSunday, StartYear: TDateTime;
WeekOfs: Byte;
begin
Year := OptDate2Year (DT);
StartYear := GetFirstDayOfYear (Year);
if DayOfWeek (StartYear) = 0 then
begin
FirstSunday := StartYear;
WeekOfs := 1;
end
else
begin
FirstSunday := StartOfWeek (StartYear) + 7;
WeekOfs := 2;
if DT < FirstSunday then
begin
Result := 1;
Exit;
end;
end;
Result := DaysApart (FirstSunday, StartofWeek (DT)) div 7 + WeekOfs;
End; |
|
|