Interval
A new attribute type, Interval, represents time intervals and durations. The default value is a string "00:00
" representing zero minutes and zero seconds. Longer durations are available. For example, the interval value
01:30
represents one minute and thirty seconds. The duration
01:01:00
represents a duration of one hour, one minute, and thirty seconds.
Note that minute and second values do not need zero-padding, "4:2" and "04:02"
Negative values
An interval may have negative duration:
-5:30
represents a negative duration of 5 minutes and 30 seconds. This can be useful when doing short duration date arithmetic (as below).
If $MyInterval is "5:30
"
Use in Date arithmetic
Intervals may be added or subtracted from Date attributes. They may multiplied or divided by constants or numeric attributes, and may be compared for equality using == and != or for magnitude using < and >.
Note: subtracting two dates does not currently return an interval; rather, it returns the number of days between the two dates in accordance with pre-existing Date-type attribute behaviour.
The result of applying a binary operation where the left-hand side is a string and the right-hand side is an interval is a string. Thus adding an interval to a string:
"The answer is:" + $MyInterval
returns a string.
Alternative syntax
Some alternative syntax is supported, including an 'h' suffix/separator for hours and 'd' for days. Thus the duration
1h30
represents one hour and thirty minutes, whilst:
1 day 01:00:00
represents 25 hours
2d2h30
represents two days, two hours and 30 minutes
whilst:
2d5
is treated as 2 days, 5 hours, as hours is the next smaller duration measure than days.
The 'd' marker is always resaved/displayed as 'day(s)':
2d5
is resaved as "2 days 05:00:00
1d5
is resaved as "1 day 05:00:00
Note that whilst 'm' and 's' suffixes are understood for minutes and seconds; the 's' is superfluous anyway as it is always the last segment if used. If a duration is entered as "3m20" Tinderbox will re-save the value in the default format of "03:20" so use of 'm' is deprecated. Thus a duration entered as follows wii be understood:
1h30m10s
but it is treated as one hour, thirty minutes and 10 seconds but will be re-saved as:
1:30:10
Duration components larger than a day (of 24 hours), e.g. moths or years, are not supported, though is is possible to use large day values:
62 days 01:30:10
representing an interval of over two months' duration.
The maximum length of an interval but it is not advised to exceed 1 year (365 days) and ideally uses intervals of a few days or less.
Note slight variations in accepted abbreviations compared to pre-existing Date-type attribute date arithmetic usage.
Sorting order
Increasing duration, so unset ("00:00") values list first.
Interval-type attributes