[Back to DATETIME SWAG index]  [Back to Main SWAG index]  [Original]

{
MIKE COPELAND

> I'm looking For some FAST routines to change seconds into a
> readable format, (ie. H:M:S).
> For instance, 8071 seconds = 2:14:31

   Here's the code I use, and it's fast enough For me:
}

Type
  Str8 = String[8];

Function FORMAT_TIME (V : Integer) : STR8; { format time as hh:mm:ss }
Var
  X, Z  : Integer;
  PTIME : STR8;
begin                            { note: incoming time is in seconds }
  Z := ord('0');
  PTIME := '  :  :  ';           { initialize }
  X := V div 3600;
  V := V mod 3600;               { process hours }
  if (X > 0) and (X <= 9) then
    PTIME[2] := chr(X+Z)
  else
  if X = 0 then
    PTIME[3] := ' '              { zero-suppress }
  else
    PTIME[2] := '*';             { overflow... }
  X := V div 60;
  V := V mod 60;                 { process minutes }
  PTIME[4] := chr((X div 10)+Z);
  PTIME[5] := chr((X mod 10)+Z);
  PTIME[7] := chr((V div 10)+Z); { process seconds }
  PTIME[8] := chr((V mod 10)+Z);
  FORMAT_TIME := PTIME
end;  { FORMAT_TIME }

begin
  Writeln(Format_Time(11122));
end.

[Back to DATETIME SWAG index]  [Back to Main SWAG index]  [Original]