一个时间相减的问题(100分)

  • 主题发起人 主题发起人 lwgsyd
  • 开始时间 开始时间
L

lwgsyd

Unregistered / Unconfirmed
GUEST, unregistred user!
一个TdataTime类型的变量 OldTime &nbsp;保存的是一个多小时前的时间<br>now()-OldTime 减出来的是 xxxx-xx-xx-xx 这样格式的。有没有办法改成 X天X小时X分X秒的样式?
 
TdateTime是Double类型的,怎么会是xxxx-xx-xx-xx格式的呢,你是用DateTimeToStr函数转了吧?<br>TdateTime的整数部分就代表天数,小数部分×24(小时)×3600(秒)即是秒数,<br>要得到X天X小时X分X秒的格式,你自己计算一下就可以了。
 
uses DateUtils;<br><br>procedure TForm1.Button2Click(Sender: TObject);<br>begin<br>&nbsp; Caption := TimeBetween(Now,OldTime);<br>end;<br><br>function TForm1.TimeBetween(const ANow, AThen: TDateTime): String;<br>var<br>&nbsp; iSecond,iMinute,iHour,iDay: Word;<br>&nbsp; iSecBetween,iRe: Word;<br>begin<br>&nbsp; iSecBetween := SecondsBetween(ANow,AThen);<br>&nbsp; DivMod(iSecBetween,60,iRe,iSecond); //秒<br>&nbsp; DivMod(iRe,60,iRe,iMinute); //分<br>&nbsp; DivMod(iRe,60,iRe,iHour); //小时<br>&nbsp; DivMod(iRe,24,iRe,iDay); //天<br>&nbsp; Result := IntToStr(iDay) + '天' +<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IntToStr(iHour) + '小时' +<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IntToStr(iMinute) + '分' +<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IntToStr(iSecond) + '秒';<br>end;
 

Similar threads

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