在Delphi中显示负时间

时间:2009-08-11 15:10:46

标签: delphi delphi-2009

我正在Delphi 2009中开发一个计时器。我目前正在使用以下方法来格式化我的计时器显示:

Caption := Format('%.2d', [Hours]) + ':' + 
           Format('%.2d', [Minutes]) + ':' + 
           Format('%.2d', [Seconds]);

并按预期显示时间为:

00:04:35

然而,当我进入负面时间时,可以理解地将其显示为:

00:-04:-35

我需要时间显示为:

-00:04:35

任何想法?

2 个答案:

答案 0 :(得分:12)

前缀:= '';     if(Hours< 0)或(Minutes< 0)或(Seconds< 0)然后     前缀:= ' - ';

Caption := Prefix+Format('%.2d', [Abs(Hours)]) + ':' + 
           Format('%.2d', [Abs(Minutes)]) + ':' + 
           Format('%.2d', [Abs(Seconds)]);

再见。

答案 1 :(得分:0)

嗯,你是分别格式化每个数字,因此毫不奇怪你得到所有这些数字的负号。试试这个:

Caption := Format('%.2d', [Abs(Hours)]) + ':' + 
           Format('%.2d', [Abs(Minutes)]) + ':' + 
           Format('%.2d', [Abs(Seconds)]);

if (Hours < 0) or (Minutes < 0) or (Seconds < 0) then begin
  Caption := '-' + Caption;
end;