How To Call It
This is an object method: call it with a colon on a TimeSpan object from a factory call such as TimeSpan.fromSeconds(...) (span:<method>(...)). The global TimeSpan table does not have this method.
Subtracts a duration and returns a new TimeSpan.
Documented for app version 1.0.51Updated:
This is an object method: call it with a colon on a TimeSpan object from a factory call such as TimeSpan.fromSeconds(...) (span:<method>(...)). The global TimeSpan table does not have this method.
For time flow, combine DateTime, TimeSpan, and Stopwatch with logging, timeout control, and performance measurement.
Required: value. Returns a TimeSpan object.
A strong combination is to measure with Stopwatch, log with DateTime, and compare durations with TimeSpan.
The snippet below is a starter pattern that can be applied directly in runtime flow.
local span = TimeSpan.fromSeconds(90)
local result = span:sub(TimeSpan.fromSeconds(30))From foundation to combined usage, each level is provided as a separate code block so you can copy the level you need and adapt it directly.
local span = TimeSpan.fromSeconds(90)
local result = span:sub(TimeSpan.fromSeconds(30))local stepOk = true
local span = TimeSpan.fromSeconds(90)
local result = span:sub(TimeSpan.fromSeconds(30))
if stepOk then
wait(200)
endlocal ok, err = pcall(function()
local span = TimeSpan.fromSeconds(90)
local result = span:sub(TimeSpan.fromSeconds(30))
end)
if not ok then
print("API step failed: TimeSpan:sub: " .. tostring(err))
requestStop()
end-- For time flow, combine DateTime, TimeSpan, and Stopwatch with logging, timeout control, and performance measurement.
local function run_sub_step()
local span = TimeSpan.fromSeconds(90)
local result = span:sub(TimeSpan.fromSeconds(30))
end
local ok, err = pcall(run_sub_step)
if not ok then
toast("Step failed")
print(err)
endlocal watch = Stopwatch()
watch:start()
local span = TimeSpan.fromSeconds(90)
local result = span:sub(TimeSpan.fromSeconds(30))
print("Elapsed ms: " .. tostring(watch:elapsedMs()))