CTime

C言語で使われる 1970/1/1 からの秒数による日時の表現を Delphi で使われる表現に変換する関数。
TCTime は今は Cardinal でもいいかなあと思うけど・・・。

type
  TCTime = Int64;
const
  CTimeZero = 25569; //EncodeDate(1970, 1, 1);
  SecPerDay = 60 * 60 * 24;

function Bias: Integer;
var
  TimeZone: TTimeZoneInformation;
begin
  GetTimeZoneInformation(TimeZone);
  Result := TimeZone.Bias * 60;
end;

function CTimeToDateTime(CTime: TCTime): TDateTime;
begin
  Result := CTimeZero + (CTime - Bias) / SecPerDay;
end;

function DateTimeToCTime(DateTime: TDateTime): TCTime;
begin
  Result := Round((DateTime - CTimeZero) * SecPerDay + Bias);
end;

Return index page