Wait until a specific time
[Autolink] Menu
 
/* ------------------------------------------------------------------ */
/* function: Wait until a specific time                               */
/*                                                                    */
/* call:     thisRC = waitUntil( timeToAwake, waitIntervall,          */
/*                               ,waitStartMsg} ,stillWaitingMsg )    */
/*                                                                    */
/* where:    timeToAwake                                              */
/*              - time to awake (e.g. "4:00pm")                       */
/*           waitIntervall                                            */
/*              - wait intervall in seconds                           */
/*                This parameter is optional; the default is 60 sec.  */
/*           waitStartMsg                                             */
/*              - Message to print to the screen before the 1st       */
/*                iteration                                           */
/*                This parameter is optional; there is no default.    */
/*           stillWaitingMsg                                          */
/*              - Message to print to the screen before each round    */
/*                This parameter is optional; there is no default.    */
/*                                                                    */
/* returns:  the number of intervalls to wait before the time was     */
/*           right.                                                   */
/*                                                                    */
/* note:     This routine needs the function SysSleep from the DLL    */
/*           REXXUTIL. REXXUTIL must be loaded prior to calling       */
/*           this routine.                                            */
/*                                                                    */
/* credits:  This code is based on code that I found in the REXX      */
/*           newsgroup.                                               */
/*                                                                    */
WaitUntil: PROCEDURE
  parse arg TimeToAwake, WaitIntervall, waitStartMsg, stillWaitingMsg
                    /* default for the wait intervall is 60 sec       */
  if waitIntervall = '' then
    waitIntervall = 60
  if waitStartMsg <> '' then
      say waitStartMsg
  prevTime = time( 'c' )
  do i=0
    if stillWaitingMsg <> '' then
      say stillWaitingMsg
    curTime = time( 'c' )
    if curTime = timeToAwake | ,
       (prevTime < timeToAwake & curTime > timeToAwake ) then
    do
                    /* it's time to leave this routine                */
      leave i
    end /* if */
                    /* go to sleep for another intervall              */
    prevTime = curTime
    call SysSleep WaitIntervall
  end /* do i=0 */
return i
 
[Back: Sample for using BEEP to play sounds] 
[Next: Get the date and time of the OS/2 boot process]