【发布时间】:2015-09-09 12:13:16
【问题描述】:
我需要将扩展值转换为时间格式。例如:
3.50 represents 00:03:50
62.02 represents 01:02:02
73.70 represents 01:14:10
我尝试了以下函数来转换小时和分钟部分,但我不知道如何转换秒部分。
function ConvertToTime(AValue: Extended): TDateTime;
begin
Result:= EncodeTime(trunc(ArticleRec.Quantity) div 60,trunc(ArticleRec.Quantity) mod 60,0,0);
end;
期待您的帮助。
【问题讨论】:
-
如果您要使用持续时间(而不是一天中的时间),那么您可以使用
TTimeSpan记录(如果您仍在使用 Delphi XE2)而不是 @987654325 @ 数据类型(因为您不能轻易地表示超过 24 小时的值)。例如TTimeSpan.FromMinutes函数可以为您提供格式中的时间跨度记录。 -
好的,是的,我正在使用 XE2。谢谢,我会试试 TTimeSpan。
-
再次感谢 David Heffernan 和 TLama 提供的解决方案。我使用 David Heffernan 的函数将 double 值转换为 seconds ,之后我使用 TTimeSpan.FromSeconds 并将 TimeSpan 格式化为 HH:MM:SS 持续时间:1.Total := TTimeSpan.FromSeconds(ConvertWeirdTimeFormatToSeconds(62.02)) 2 .format('%2d:%.2d:%.2d', [Total.days * 24 + Total.Hours, Total.Minutes,Total.Seconds])
标签: delphi