How to resolve the algorithm Convert seconds to compound duration step by step in the Tcl programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Convert seconds to compound duration step by step in the Tcl programming language

Table of Contents

Problem Statement

Write a function or program which: This is detailed below (e.g., "2 hr, 59 sec").

Demonstrate that it passes the following three test-cases: Test CasesDetailsThe following five units should be used: However, only include quantities with non-zero values in the output (e.g., return "1 d" and not "0 wk, 1 d, 0 hr, 0 min, 0 sec"). Give larger units precedence over smaller ones as much as possible (e.g., return 2 min, 10 sec and not 1 min, 70 sec or 130 sec) Mimic the formatting shown in the test-cases (quantities sorted from largest unit to smallest and separated by comma+space; value and unit of each quantity separated by space).

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Convert seconds to compound duration step by step in the Tcl programming language

Source code in the tcl programming language

proc sec2str {i} {
    set factors {
        sec 60
        min 60
        hr  24
        d   7
        wk  Inf
    }
    set result ""
    foreach {label max} $factors {
        if {$i >= $max} {
            set r [expr {$i % $max}]
            set i [expr {$i / $max}]
            if {$r} {
                lappend result "$r $label"
            }
        } else {
            if {$i > 0} {
                lappend result "$i $label"
            }
            break
        }
    }
    join [lreverse $result] ", "
}

proc check {cmd res} {
    set r [uplevel 1 $cmd]
    if {$r eq $res} {
        puts "Ok! $cmd \t = $res"
    } else {
        puts "ERROR: $cmd = $r \t expected $res"
    }
}

check {sec2str 7259}    {2 hr, 59 sec}
check {sec2str 86400}   {1 d}
check {sec2str 6000000} {9 wk, 6 d, 10 hr, 40 min}


  

You may also check:How to resolve the algorithm FizzBuzz step by step in the Clay programming language
You may also check:How to resolve the algorithm 100 doors step by step in the Objective-C programming language
You may also check:How to resolve the algorithm Sum and product puzzle step by step in the 11l programming language
You may also check:How to resolve the algorithm Image noise step by step in the Go programming language
You may also check:How to resolve the algorithm JSON step by step in the FutureBasic programming language