Count Up Timer?
Tom Glod
tom at makeshyft.com
Tue Nov 2 17:36:31 EDT 2021
Ok, thanks Sean, here it is in plain text for anyone who wants to use it.
function TimeDisplay HowMany,DisplayHow
if DisplayHow = "Duration" then
//*************************************************************
if AppStarterStackSettings["default"]["Time Unit"] = "seconds" then
return round(HowMany / 1000,3) & "s"
else if AppStarterStackSettings["default"]["Time Unit"] = "milliseconds"
then
return HowMany & "ms"
else if AppStarterStackSettings["default"]["Time Unit"] = "microseconds"
then
end if
else if DisplayHow = "Human Readable" then
//*************************************************************
local final_output = "<d> days <hh>:<mm>:<ss>"
local running_second_count
local next_calculation
set itemdelimiter to "." -- we are looking at boths sides of the decimal
place
put round(HowMany / 1000) into HowMany -- convert to seconds
// 86,400 seconds in an day
// 3600 in an hour
// 60 seonds in a minute
// replace counts as you go
-- days
put HowMany / 86400 into next_calculation
if next_calculation < 1 then
put HowMany into running_second_count
replace "<d>" with "0" in final_output
else
// how many days?
replace "<d>" with item 1 of next_calculation in final_output
put (HowMany) - (item 1 of next_calculation * 86400) into
running_second_count
end if
-- hours
put running_second_count / 3600 into next_calculation
if next_calculation < 1 then
replace "<hh>" with "00" in final_output
else
// how many hours?
if the number of characters in item 1 of next_calculation = 1 then
replace "<hh>" with "0" & item 1 of next_calculation in final_output
else
replace "<hh>" with item 1 of next_calculation in final_output
end if
put (running_second_count) - (item 1 of next_calculation * 3600) into
running_second_count
end if
-- minutes
put running_second_count / 60 into next_calculation
if next_calculation < 1 then
replace "<mm>" with "00" in final_output
else
// how many minutes?
if the number of characters in item 1 of next_calculation = 1 then
replace "<mm>" with "0" & item 1 of next_calculation in final_output
else
replace "<mm>" with item 1 of next_calculation in final_output
end if
put (running_second_count) - (item 1 of next_calculation * 60) into
running_second_count
end if
-- seconds
put running_second_count into next_calculation
if next_calculation < 1 then
replace "<ss>" with "00" in final_output
else
// how many minutes?
if the number of characters in item 1 of next_calculation = 1 then
replace "<ss>" with "0" & next_calculation in final_output
else
replace "<ss>" with next_calculation in final_output
end if
end if
end if
//*************************************************************
return final_output
end TimeDisplay
More information about the use-livecode
mailing list