Kod: Tümünü seç
function GetNumberOfWeek(ADate: TDateTime): integer;
var
d,m,y,h : Word;
Jan: TDateTime;
Days : Integer;
begin
try
DecodeDate(ADate, y, m, d);
Jan:= EncodeDate(y, 1, 1);
h:= DayOfWeek(Jan);
Days:= Trunc(Int(aDate) - Jan) + 7 - DayOfWeek(ADate - 1);
Inc(Days, 7 * Ord(h in [2..5]));
Result := Days div 7;
if Result = 0 then
if (DayOfWeek(EncodeDate(Pred(y), 1, 1)) > 5)
or (DayOfWeek(EncodeDate(Pred(y), 12, 31)) < 5) then
Result:= 52
else
Result:= 53
else
if Result = 53 then
if (h > 5) or (DayOfWeek(EncodeDate(y, 12, 31)) < 5) then
Result:= 1;
except
Result := 0;
end;
end;