Показать сообщение отдельно
  #2  
Старый 09.02.2010, 19:02
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Да все просто. Пользуйся тем, что TDateTime есть число с фиксированой точкой, где целая часть - дни, а дробная - время:

Код:
function SecToDate(ASec : Integer) : TDateTime;
const
  SecsInDay = 24 * 60 * 60; // секунд в дне
var
  ZeroDate : TDateTime;
  InDays : Integer;
  ModSecs : Integer;
begin
  ZeroDate := EncodeDate(1,1,2009); // точка отсчета
  InDays := ASec div SecsInDay; // дней в переданных секундах
  ModSecs := ASec mod SecsInDay; // оставшиеся секунды

  // Вычислфем результат
  Result := ZeroDate + InDays + ModSecs / SecsInDay;
end;
Ответить с цитированием