[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]