www.ClassicTW.com http://classictw.com/ |
|
Time lapse subroutine for seconds past or formatted duration http://classictw.com/viewtopic.php?f=15&t=34857 |
Page 1 of 1 |
Author: | Adept [ Thu May 05, 2016 11:53 am ] |
Post subject: | Time lapse subroutine for seconds past or formatted duration |
Here is a handy subroutine to either get the seconds past or to print out a readable period of time (this includes additional code for testing purposes): Sample output: Code: Unformatted seconds passed: 216094 Formatted time passed: 2 Days, 12 Hrs, 1 Min, 34 Secs Code: # Return total seconds by default using Boolean value. 0 for seconds or 1 for readable duration: setVar $_MARKTIME_FORMAT 0 # ... goSub :TIMESTAMP setVar $start_time $_TIMESTAMP # e.g., test time lapse... (Note TWX appears to internally round the value up to the nearest full second.) setDelayTrigger 1 :TEST_DURATION 8500 pause :TEST_DURATION killTrigger 1 goSub :TIMESTAMP setVar $end_time $_TIMESTAMP goSub :MARKTIME echo "** Unformatted seconds passed: " $_MARKTIME "**" setVar $_MARKTIME_FORMAT 1 goSub :MARKTIME echo "** Formatted time passed: " $_MARKTIME "**" halt :TIMESTAMP # Returns a timestamp decimal value. getTime $_DATE mm:dd:yyyy getTime $_TIME hh:nn:ss replaceText $_DATE ":" "/" setVar $date_time $_DATE & " " & $_TIME format $date_time $_TIMESTAMP STRTODATETIME return :MARKTIME # Returns a readable format based upon the seconds lapsed. This function is accurate only to the hole second. setVar $_MARKTIME "" setVar $days 0 setVar $hrs 0 setVar $mins 0 setPrecision 20 setVar $secs (($end_time-$start_time)*86400) setPrecision 0 round $secs 0 if ($_MARKTIME_FORMAT = 1) if ($secs > 59) setVar $mins ($secs/60) setVar $secs ($secs-(60*$mins)) end if ($mins > 59) setVar $hrs ($mins/60) setVar $mins ($mins-(60*$hrs)) end if ($hrs > 23) setVar $days ($hrs/24) setVar $hrs ($hrs-(24*$days)) end if ($days > 0) format $days $format NUMBER stripText $format ".00" if ($days > 1) setVar $days $format & " Days" else setVar $days $format & " Day" end if ($hrs <> 0) OR ($mins <> 0) OR ($secs <> 0) setVar $days $days & ", " end end if ($hrs > 0) if ($hrs > 1) setVar $hrs $hrs & " Hrs" else setVar $hrs $hrs & " Hr" end if ($mins <> 0) OR ($secs <> 0) setVar $hrs $hrs & ", " end end if ($mins > 0) if ($mins > 1) setVar $mins $mins & " Mins" else setVar $mins $mins & " Min" end if ($secs <> 0) setVar $mins $mins & ", " end end if ($secs > 0) if ($secs > 1) setVar $secs $secs & " Secs" else setVar $secs $secs & " Sec" end end if ($days <> 0) setVar $_MARKTIME $days end if ($hrs <> 0) setVar $_MARKTIME $_MARKTIME & $hrs end if ($mins <> 0) setVar $_MARKTIME $_MARKTIME & $mins end if ($secs <> 0) setVar $_MARKTIME $_MARKTIME & $secs end else setVar $_MARKTIME $secs end setVar $_MARKTIME_FORMAT 0 return halt |
Page 1 of 1 | All times are UTC - 5 hours |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |