-5

你好,我不知道如何编写一个德尔福程序,它需要在合适的输入组件中从 A 点到达 B 点所需的分钟数,例如 65 分钟是 1 小时 5 分钟现在我的问题是如何编写它?

4

2 回答 2

12

您可以使用divand mod整数除法和模运算符来做到这一点。

procedure ConvertMinutesToHoursAndMinutes(
  Input: Integer; out Hours, Minutes: Integer);
begin
  Hours := Input div 60;
  Minutes := Input mod 60;
end;
于 2013-02-25T21:05:44.473 回答
2

一个不错的格式化例程可能是这样的:

function MinutesToStrEx(const Minutes: Cardinal): string;
var
  D, H, M: Integer;
begin
  H := M div 60;
  M := M mod 60;
  D := H div 24;
  H := H mod 24;
  if D > 0 then
    if (H <> 0) or (M <> 0) then
      Result := Format('%d days %d hours and %d minutes', [D, H, M])
    else
      Result := Format('%d days', [D]);
  else if H > 0 then
    if M > 0 then
      Result := Format('%d hours and %d minutes', [H, M])
    else
      Result := Format('%d minutes', [M]);
end;

然后你这样称呼它:

begin
  Label1.Caption := 'Ellapsed time to reach from A to B: ' + MinutesToStrEx(Minutes);
end;
于 2013-02-25T21:24:26.940 回答