请问如何得到从公元1970年1月1日以来过去的毫秒数(200分)

  • 主题发起人 主题发起人 winvxd
  • 开始时间 开始时间
W

winvxd

Unregistered / Unconfirmed
GUEST, unregistred user!
请问在delphi里如何得到从公元1970年1月1日以来过去的毫秒数?
 
这个问题不难吧,不知下面的算法对不对<br>1、计算出有多少个润年。<br>2、之后计算出整年的毫秒数。<br>3、计算出不足一年的毫秒数(判断是否润年,多少个30日的和31日的月,计算出有多少天)<br>4、将2、3的结果想加就行。<br><br>菜鸟一名,有错请指教<br>
 
to writer:<br>你说的办法不可行
 
gettickcount<br><br>是不是这个啊?
 
var<br>&nbsp; D: Double;<br>&nbsp; MS: Int64;<br>&nbsp; begin<br>&nbsp; &nbsp; D := Now - Encodedate(1970, 1, 1);<br>&nbsp; &nbsp; MS := Trunc(D * 24 * 60 * 60 * 1000)<br>&nbsp; end;<br>//MS 就是1970-1-1零时至今的毫秒数<br><br>我提交时是 1,078,129,629,764
 
用当前的日期减去1970年1月1日得出的天数化成毫秒,再加上现在时间化成的毫秒数。
 
使用函数<br>function MilliSecondsBetween(const ANow, AThen: TDateTime): Int64;<br><br>例子:<br>uses Dateutils;<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; &nbsp; OldTime:TdateTime;<br>&nbsp; &nbsp; i:int64;<br>begin<br>&nbsp; &nbsp; OldTime:= StrToDateTime('1970-1-1 00:00:00');<br>&nbsp; &nbsp; i:=MilliSecondsBetween(Now, OldTime);<br>end;<br><br>
 
procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; n: Extended;<br>begin<br>&nbsp; n := (Now - EncodeDate(1970, 1, 1)) * 24 * 3600 * 1000;<br>&nbsp; showMessage(FloatToStr(n));<br>end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部