var dt1,dt2,dt3:TDateTime;
n1,n2:Integer;
begin
dt1:=EncodeDateTime(2005,2,17,16,34,0,0);
dt2:=IncMinute(dt1);
dt3:=EncodeDateTime(2005,2,17,16,35,0,0);
n1:=MinutesBetween(dt1,dt2);
n2:=MinutesBetween(dt1,dt3);
ShowMessage(IntToStr(n1)+','+IntToStr(n2));
end;运行结果:1,0
为什么n1、n2不一样?
n1,n2:Integer;
begin
dt1:=EncodeDateTime(2005,2,17,16,34,0,0);
dt2:=IncMinute(dt1);
dt3:=EncodeDateTime(2005,2,17,16,35,0,0);
n1:=MinutesBetween(dt1,dt2);
n2:=MinutesBetween(dt1,dt3);
ShowMessage(IntToStr(n1)+','+IntToStr(n2));
end;运行结果:1,0
为什么n1、n2不一样?
解决方案 »
- 50 简单问题,DLL里如何头部申明...............
- 如何在启动时让其他窗体显示在主窗体上面
- 关于MaskEdit的小问题~(在线)
- 如何在双击一个树节点时,不自动展开和收缩该节点!
- 为什么我在win2000下用delphi6写的程序运行没问题,在win98会出错呢?(救命呀)
- 请教,Delphi如何截获dos 的输出信息。
- 媒体播放器组件如何支持asfRmFlash阿,把Ativx组件拖入就可以了吗?
- 大哥大姐,帮帮忙!
- 一个小问题:数据库表的字段是英文的,怎样在Grid里显示中文字段名?
- 送分题:请问浮点数取整的函数是什么?
- 怎么样巴WebBrowser的滚动框去掉
- 我把一个纯光体封装到了一个dll里,然后调用这个窗体,为和总抛出一个错误消息框“cannot make a visible window modal”,这个怎样处理
計算了一下,是數據在取整時出現的問題,MinutesBetween中是使用
Double類型進行計算的,這樣是避免不了取整的問題,
整数部分是距离19xx年开始有多少天
小数点后表示毫秒应该是这个原因
n1,n2:Integer;
begin
dt1:=EncodeDateTime(2005,2,17,16,34,0,0);
dt2:=IncMinute(dt1);
dt3:=EncodeDateTime(2005,2,17,16,35,0,0);
ShowMessage(BoolToStr((dt2=dt3),True));
end;
我运算的结果是False,为什么?
d:Double;
begin
dt1:=EncodeDateTime(2005,2,17,16,34,0,0);
dt2:=IncMinute(dt1);
dt3:=EncodeDateTime(2005,2,17,16,35,0,0);
d:=dt2-dt3;
ShowMessage(FloatToStr(d));
end;
结果是什么呢?
bt1,bt2:array[0..7] of byte;
begin
dt1:=EncodeDateTime(2005,2,17,16,34,0,0);
dt2:=IncMinute(dt1);
dt3:=EncodeDateTime(2005,2,17,16,35,0,0);
Move(dt2,bt1,8);
Move(dt3,bt2,8);
Memo1.Lines.Add(Format('%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x',[bt1[0],bt1[1],bt1[2],bt1[3],bt1[4],bt1[5],bt1[6],bt1[7]]));
Memo1.Lines.Add(Format('%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x',[bt2[0],bt2[1],bt2[2],bt2[3],bt2[4],bt2[5],bt2[6],bt2[7]]));
end;
我的运行结果:
1DC7711C16C0E240
1CC7711C16C0E240
你的结果是什么?