求教:网络传递中时间数据类型的问题? ( 积分: 50 )

  • 主题发起人 主题发起人 spary123
  • 开始时间 开始时间
S

spary123

Unregistered / Unconfirmed
GUEST, unregistred user!
对方程序(VC写的)传递我一个IP数据包,里面包含有一个数据类型time_t:time;由于VC中time_t是long型32位,我收到后如和转换位时间呢?感谢
 
你可能需要进行换算,c中,是以 100 毫微秒为单位表示的日期和时间。
但是delphi中, 一个整数1表示一天,你进行计算就可以。
比如c中的值换算成delphi中的值,你可以计算一个固定的因子 ,一天应该是24*60*60*1000*10 毫微秒吧?你把c返回的值除以这个固定的值就可以得到delphi中的时间了。
 
uses Windows;

function DateTimeTotime_t(dt:TDateTime):DWORD;
var
TimeDec:Integer;
Info:TTimeZoneInformation;
begin
GetTimeZoneInformation(Info);
TimeDec:=Info.Bias*60;//分->秒
//25569;//='1970-01-01 00:00:00'
Result:=Round((dt-25569)*86400)+TimeDec;
end;

function time_tToDateTime(iTime:DWORD):TDateTime;
var
dt:TDateTime;
TimeDec:Integer;
iiTime:Int64;
Info:TTimeZoneInformation;
begin
iiTime:=iTime;
GetTimeZoneInformation(Info);
TimeDec:=Info.Bias*60;//分->秒
dt:=(iiTime-TimeDec)/86400+25569;
Result:=dt;
end;
 
感谢!!!
 

Similar threads

回复
0
查看
978
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部