+proc format_qty {qty unit} {
+ set o $qty
+ append o " "
+ append o $unit
+ if {$qty != 1} { append o s }
+ return $o
+}
+
+proc showintervalsecs/hms {qty} {
+ set ul {second 60 minute 60 hour 24 day 7 week}
+ set remainv 0
+ while {[llength $ul] > 1 && $qty >= [set uv [lindex $ul 1]]} {
+ set remainu [lindex $ul 0]
+ set remainv [expr {$qty % $uv}]
+ set qty [expr {($qty-$remainv)/$uv}]
+ set ul [lreplace $ul 0 1]
+ }
+ set o [format_qty $qty [lindex $ul 0]]
+ if {$remainv} {
+ append o " "
+ append o [format_qty $remainv $remainu]
+ }
+ return $o
+}
+