Авторизация

Логин: Пароль:
Регистрация Забыли свой пароль?

Номер недели по дате

Страницы: 1
Номер недели по дате
Здравствуйте. Подскажите, есть ли простой способ узнать номер недели в году по заданной дате
Есть
Код
function WeekOfYear(ADate : TDateTime) : word; 
var 
  day : word; 
  month : word; 
  year : word; 
  FirstOfYear : TDateTime; 
begin 
  DecodeDate(ADate, year, month, day); 
  FirstOfYear := EncodeDate(year, 1, 1); 
  Result := Trunc(ADate - FirstOfYear) div 7 + 1; 
end; 


procedure TForm1.Button1Click(Sender: TObject); 
begin 
  ShowMessage(IntToStr(WeekOfYear(Date))); 
end;
Или так
Код
function WeekNum(const ADate: TDateTime): word; 
var 
  Year: word; 
  Month: word; 
  Day: word; 
begin 
  DecodeDate(ADate + 4 - DayOfWeek(ADate + 6), Year, Month, Day); 
  result := 1 + trunc((ADate - EncodeDate(Year, 1, 5) + 
      DayOfWeek(EncodeDate(Year, 1, 3))) / 7); 
end; 
Можно еще вот так
Код
function WeekOfYear(Dat: TDateTime): Word; 
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; 
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)