The function TIME()

[Autolink] Menu

The function TIME generates a syntax error if called with the parameter E or R if the elapsed time is negative (the stop time is before the start time). Note that this error is fixed in Object-Oriented REXX -- but not in Classic REXX from WARP 4.

Example:

 
/* simple code to show the error in the function time()               */

                    /* install an error handler                       */
  signal on Syntax

                    /* get the current time                           */
  thisTime = time( "N" )

                    /* calculate the time 1 hour _before_ now         */
  testTime = substr( thisTime,1,2 ) - 1 || substr( thisTime,3 )

  say "Current time is:" thisTime

  say "Now reseting the timer ..."

  call time "R"

                    /* now setting the stop time _before_ the start   */
                    /* time                                           */
  say "Now setting the time to" testTime "..."

  "@time" testTime

  say "The time now is:" time()

  say "Now retreiving the elapsed time via time(E) ..."
  say " (--> This will generate a syntax error!)"

  say "Elapsed time is" time("E")


ProgramEnd:
  say "Now resetting the time to the correct value ..."

                    /* get the current time                           */
  thisTime = time( "N" )

                    /* set the correct time                           */
  "@time" substr( thisTime,1,2 ) + 1 || substr( thisTime,3 )

  say "Current time is:" time()

exit

/* error handler                                                      */

Syntax:
  say "*** Syntax error occured in line:" sigl
  say "    Condition(D) is" condition(D)
  say "    Condition(C) is" condition(C)
  say "    rc is" rc
  say "    The error message for" rc "is:"
  say "   " errortext(rc)

                    /* jump to ProgramEnd to correct the time         */
signal ProgramEnd


[Back: The function STREAM()]
[Next: The function TRANSLATE()]