Если еще помните, я сделал программу INTIME, которая запрашивает время из Интернета.
Время возвращается в виде четырех-байтного числа, так называемого <Unix time>.
А вот как оно пробразуется в дату:
Я естественно писал на ассемблере, и заняла такая процедура не более полу-килобайта.Код:------------------------------------------------------------ : Как преобразовать unix time в TDateTime ------------------------------------------------------------ unix timestamp представляет собой число секунд начиная с 1.01.1970 const SecPerDay = 86400; Offset1970 = 25569; function UnixTimeToDateTime(UnixTime : LongInt): TDate; begin Result := UnixTime / SecPerDay + Offset1970; end; function DateTimeToUnixTime(DelphiDate : TDate) : LongInt; begin Result := Trunc((DelphiDate - Offset1970) * SecPerDay); end; function UnixToDateTime(const AValue: Int64): TDateTime; Const HoursPerDay = 24; MinsPerDay = HoursPerDay * 60; SecsPerDay = MinsPerDay * 60; UnixDateDelta = 25569; begin Result := AValue / SecsPerDay + UnixDateDelta; end;
PS. Этот текст из FAQ для Unix.
На самом деле в интернете время с тайм-серверов возвращается как число секунд от 1.01.1900 года.
PSS. Исходник, если интересно, могу выложить.




Ответить с цитированием