Files
kumomta/docs/reference/kumo.time/TimeDelta.md
T
2026-01-30 16:45:12 +00:00

41 lines
1.6 KiB
Markdown

# TimeDelta Object Type
{{since('2025.12.02-67ee9e96')}}
The `TimeDelta` object type represents a time interval.
You do not create a `TimeDelta` object directly, but instead using one of the
constructing functions:
* [kumo.time.parse_duration](parse_duration.md)
or though metamethods of `TimeDelta` (see below) or [Time](Time.md#metamethods).
## Metamethods
The following metamethod are implemented on `TimeDelta` objects:
* `tostring(time_delta)` - returns a human readable duration string, the same as the `human` field described below
* `delta1 == delta2` - compares two `TimeDelta` objects for equality
* `delta1 + delta2` - you may add a `TimeDelta` to a `TimeDelta` to produce a new `TimeDelta`
* `delta1 - delta2` - you may subtract a `TimeDelta` from a `TimeDelta` to produce a new `TimeDelta`
## Fields
The following fields epose information about the underlying `TimeDelta`.
Fields are accessed using dot notation, like `delta.seconds`.
* `seconds` - returns the TimeDelta expressed as a signed number of seconds (including fractional seconds)
* `nanoseconds` - returns the TimeDelta expressed as a signed integer number of nanoseconds.
* `milliseconds` - returns the TimeDelta expressed as a signed integer number of milliseconds.
* `microseconds` - returns the TimeDelta expressed as a signed integer number of microseconds.
* `human` - returns the TimeDelta expressed as a human readable string, such
as `5m` for a five minute duration.
```lua
local delta1 = kumo.time.parse_duration(20)
local delta2 = kumo.time.parse_duration '10 seconds'
assert((delta2 - delta1).seconds == 10)
```