Template:Duration/doc

From Terraria Wiki
Jump to navigation Jump to search

Format a time value, input in seconds.

Usage

{{ duration | <time in seconds/ticks> | <maximum unit> | round = <rounding level> | raw<seconds/minutes/hours/days/weeks> = <non-numerical time> }}

First unnamed parameter

Number, any valid {{#expr:}} string is accepted. By default interpreted as time in seconds, unless the number is followed by any of the strings t/tick/ticks, in which case the value is interpreted as time in ticks.[1]

Second unnamed parameter

Greatest unit of the output. Can be any of seconds, minutes (default), hours, days, and weeks, or s, m, h, d, and w for short, respectively.

round

Rounding level for decimal seconds, 2 by default.

rawseconds, rawminutes, rawhours, rawdays, rawweeks

One of these parameters can be used to prevent any calculations and formatting (hence "raw") and just display the given time and unit. This is useful if the input time is not purely numerical (e.g. not a valid {{#expr:}} string) and would thus normally result in an error, e.g. a time range like "1–3 seconds". Only one out of these five parameters can be used. All other parameters are ignored if one of these is used.

Notes

  • The template does not support specifying a lowest unit of the output. Instead, this can easily be achieved by rounding the number of seconds divided by the number of seconds in the target unit, then multiplying that value by the target unit again. For example, to display 3661 (1 hour 1 minute 1 second) in only hours and minutes, use (3661 / 60 round 0) * 60. To round down or up, use floor() or ceil() instead of round 0, respectively. To set the lowest unit to hours, use 3600 instead of 60, and 86400 for days. See below for examples.

Examples

Code Result
{{duration|41}} 41 seconds
{{duration|40.75}} 40.75 seconds
{{duration|90}} 1 minute 30 seconds
{{duration|1800}} 30 minutes
{{duration|7201}} 120 minutes 1 second
{{duration|604800}} 10,080 minutes
With unit
{{duration|604800|weeks}} 1 week
{{duration|7201|weeks}} 2 hours 1 second
{{duration|604800|d}} 7 days
{{duration|7201|w}} 2 hours 1 second
Various inputs
{{duration|2/3}} 0.67 seconds
{{duration|2/3|round=6}} 0.666667 seconds
{{duration|(35/11 mod 2) - (10^-2 / pi*3) + ceil(21/6)}} 4.99 seconds
{{duration|{{#time:U|+3 days 2 hours 44 minutes 23 seconds}}-{{#time:U}}|days}} 3 days 2 hours 44 minutes 23 seconds
{{duration|{{#time:U|+2 days 37 hours 98 minutes 63 seconds}}-{{#time:U}}|hours}} 86 hours 39 minutes 3 seconds
{{duration|-41}} −41 seconds
{{duration|-3601|days}} −1 hour 1 second
Near-zero behavior
{{duration|0}} 0 seconds
{{duration|0.001}} 0 seconds
{{duration|-0.001}} −0 seconds
{{duration|0.001|round=5}} 0.001 seconds
Tick[1] input
{{duration|60t}} 1 second
{{duration|20tick}} 0.33 seconds
{{duration| 30 Ticks }} 0.5 seconds
{{duration|140 ticks|round=4}} 2.3333 seconds
Lowest output unit
{{duration|694921|days}} 8 days 1 hour 2 minutes 1 second
{{duration|(694921 / 3600 round 0) * 3600|days}} 8 days 1 hour
{{duration|ceil(694921 / 3600) * 3600|days}} 8 days 2 hours
{{duration|(694921 / 86400 round 0) * 86400|days}} 8 days
"Raw" input
{{duration|rawseconds=2.5–6.5}} 2.5–6.5 seconds
{{duration|rawminutes=0}} 0 minutes
{{duration|rawseconds=0.5–1}} 0.5–1 second
{{duration|rawhours=12–24}} 12–24 hours

References

  1. 1.0 1.1 A tick is a time unit countable by the software. Most of Terraria's updating logic happens every tick. A tick has the length of 1/60th of a second, hence there are 60 ticks in a second and 3600 ticks in a minute.