SCCSID(@
(#)convtime.c 3.3 %G%);
** CONVTIME -- convert time
** Takes a time as an ascii string with a trailing character
** For example, "3d12h" is three and a half days.
** p -- pointer to ascii time.
t
= t
* 10 + (*p
++ - '0');
** PINTVL -- produce printable version of a time interval
** intvl -- the interval to be converted
** brief -- if TRUE, print this in an extremely compact form
** (basically used for logging).
** A pointer to a string version of intvl suitable for
** The string returned is in a static buffer.
# define PLURAL(n) ((n) == 1 ? "" : "s")
if (intvl
== 0 && !brief
)
/* decode the interval into weeks, days, hours, minutes, seconds */
/* now turn it into a sexy form */
(void) sprintf(p
, "%d+", dy
);
(void) sprintf(p
, "%02d:%02d:%02d", hr
, mi
, se
);
/* use the verbose form */
(void) sprintf(p
, ", %d week%s", wk
, PLURAL(wk
));
(void) sprintf(p
, ", %d day%s", dy
, PLURAL(dy
));
(void) sprintf(p
, ", %d hour%s", hr
, PLURAL(hr
));
(void) sprintf(p
, ", %d minute%s", mi
, PLURAL(mi
));
(void) sprintf(p
, ", %d second%s", se
, PLURAL(se
));