# EPIC

### EPIC News

tdiff

# \$EPIC: tdiff.txt,v 1.2 2006/08/20 17:37:08 sthalik Exp \$

# Synopsis:

\$tdiff(<seconds>)
\$tdiff2(<seconds>)

# Technical:

• If the <seconds> argument is omitted, the empty string is returned
• The argument is taken to be the number of seconds (floating point is permitted) between two timed events. The integer part of the number must be within the range 2147483647 to -2147483648.
• \$tdiff() returns the number of elapsed seconds in the following format:
<integer> is taken as everything before a '.' in <seconds>.
<after> is taken as everything after a '.' in <seconds>.
<tsec> is <integer> % 60;
<tmin> is (<integer> / 60) % 60;
<thour> is (<integer> / 3600) % 24;
<tday> is (<integer> / 86400);
If <tday> is 0, then nothing
If <tday> is 1, then "1 day "
Otherwise, then "<tday> days "
plus
If <thour> is 0, then nothing
If <thour> is 1, then "1 hour "
Otherwise, then "<thour> hours "
plus
If <tmin> is 0, then nothing
If <tmin> is 1, then "1 minute "
Otherwise, then "<tmin> minutes "
plus
If <tsec> is not zero or all of <tday>, <thour>, <tmin> are zero,
or <after> exists, then
If <after> exists, <sec> is "<tsec>.<after>"
then "<sec> seconds"
If <tsec> is 1, then "<sec> second"
Otherwise, then "<sec> seconds"
• \$tdiff2() returns the same thing that \$tdiff() does, modulo:
• “s”, “m”, “h” and “d” are returned instead of “seconds”, “minutes”, “hours” and “days”, respectively.
• The units indicator immediately follows the number.
• Plurals are not indicated.
• If a trailing space exists at the end of the string, it is removed.
• Negative numbers are acceptable and will yield negative results.

# Practical:

These functions are useful for showing how much time has elapsed since a particular event. For instance, they can convert your idle time from the number of seconds to a more readable form.

# Returns:

A human readable string representing some elapsed time.

# History:

This function first appeared in ircII-2.2pre5

# Examples:

\$tdiff(248576)      returns "2 days 21 hours 2 minutes 56 seconds"
\$tdiff(-248576)     returns "-2 days -21 hours -2 minutes -56 seconds"
\$tdiff2(248576)     returns "2d 21h 2m 56s"
\$tdiff2(-248576)    returns "-2d -21h -2m -56s"
\$tdiff2(3602)       returns "1h 2s"  Notice the absence of minutes.