Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # from http://wiki.tcl.tk/5000
- proc comma { num {sep ,} } {
- while {[regsub {^([-+]?\d+)(\d\d\d)} $num "\\1$sep\\2" num]} {}
- return $num
- }
- proc duration {num {type "1"}} {
- if {$type == "1"} {
- set tmp(1) [int $num]
- set tmp(wks) " [int [expr $tmp(1) /60/60/24/7]]wks"
- if {$tmp(wks) == " 0wks"} {
- set tmp(wks) ""
- }
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60/60/24/7]] *7*24*60*60]]
- set tmp(days) " [int [expr $tmp(1) /60/24/60]]days"
- if {$tmp(days) == " 0days"} {
- set tmp(days) ""
- }
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60/24/60]] *60*24*60]]
- set tmp(hrs) " [int [expr $tmp(1) /60/60]]hrs"
- if {$tmp(hrs) == " 0hrs"} {
- set tmp(hrs) ""
- }
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60/60]] *60*60]]
- set tmp(mins) " [int [expr $tmp(1) /60]]mins"
- if {$tmp(mins) == " 0mins"} {
- set tmp(mins) ""
- }
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60]] *60]]
- set tmp(secs) " $tmp(1)secs"
- if {$tmp(secs) == " 0secs"} {
- set tmp(secs) ""
- }
- return [string trimleft "$tmp(wks)$tmp(days)$tmp(hrs)$tmp(mins)$tmp(secs)"]
- } elseif {$type == "2"} {
- set tmp(1) [int $num]
- set tmp(wks) " [int [expr $tmp(1) /60/60/24/7]] Weeks"
- if {$tmp(wks) == " 0 Weeks"} {
- set tmp(wks) ""
- }
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60/60/24/7]] *7*24*60*60]]
- set tmp(days) " [int [expr $tmp(1) /60/24/60]] Days"
- if {$tmp(days) == " 0 Days"} {
- set tmp(days) ""
- }
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60/24/60]] *60*24*60]]
- set tmp(hrs) " [int [expr $tmp(1) /60/60]] Hours"
- if {$tmp(hrs) == " 0 Hours"} {
- set tmp(hrs) ""
- }
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60/60]] *60*60]]
- set tmp(mins) " [int [expr $tmp(1) /60]] Minutes"
- if {$tmp(mins) == " 0 Minutes"} {
- set tmp(mins) ""
- }
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60]] *60]]
- set tmp(secs) " $tmp(1) Seconds"
- if {$tmp(secs) == " 0 Seconds"} {
- set tmp(secs) ""
- }
- return [string trimleft "$tmp(wks)$tmp(days)$tmp(hrs)$tmp(mins)$tmp(secs)"]
- } elseif {($type == "3") || ($type == "4")} {
- set tmp(1) [int $num]
- if {$type == 3} {
- set tmp(days) "[int [expr $tmp(1) /60/24/60]] days, "
- } elseif {$type == 4} {
- set tmp(days) "[int [expr $tmp(1) /60/24/60]] d "
- }
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60/24/60]] *60*24*60]]
- set tmp(hrs) [align [int [expr $tmp(1) /60/60]] 2 0 R]
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60/60]] *60*60]]
- set tmp(mins) [align [int [expr $tmp(1) /60]] 2 0 R]
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60]] *60]]
- set tmp(secs) [align $tmp(1) 2 0 R]
- return "$tmp(days)$tmp(hrs):$tmp(mins):$tmp(secs)"
- } elseif {$type == "5"} {
- set tmp(1) [int $num]
- set tmp(days) [int [expr $tmp(1) /60/24/60]]
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60/24/60]] *60*24*60]]
- set tmp(hrs) [align [int [expr $tmp(1) /60/60]] 2 0 R]
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60/60]] *60*60]]
- set tmp(mins) [align [int [expr $tmp(1) /60]] 2 0 R]
- incr tmp(1) -[int [expr [int [expr $tmp(1) /60]] *60]]
- set tmp(secs) [align $tmp(1) 2 0 R]
- return [string trimleft "$tmp(days) d, $tmp(hrs) h, $tmp(mins) m, $tmp(secs) s"]
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement