Число текущей недели 3
function WeekOfYear(Dat: TDateTime): Word;
// Интерпретация номеров дней:
// ISO: 1 = Понедельник, 7 = Воскресенье
// Delphi SysUtils: 1 = Воскресенье, 7 = Суббота
var
Day, Month, Year: Word;
FirstDate: TDateTime;
DateDiff: Integer;
begin
day := SysUtils.DayOfWeek(Dat) - 1;
Dat := Dat + 3 - ((6 + day) mod 7);
DecodeDate(Dat, Year, Month, Day);
FirstDate := EncodeDate(Year, 1, 1);
DateDiff := Trunc(Dat - FirstDate);
Result := 1 + (DateDiff div 7);
end;
|
|