How to resolve the algorithm Convert seconds to compound duration step by step in the CLU 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 CLU 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 CLU programming language

Source code in the clu programming language

duration = proc (s: int) returns (string)
    own units: array[string] := array[string]$["wk","d","hr","min","sec"]
    own sizes: array[int] := array[int]$[2:7,24,60,60]
    
    d: string := ""
    r: int
    for i: int in int$from_to_by(5,1,-1) do
        begin
            r := s // sizes[i] 
            s := s / sizes[i]
        end except when bounds:
            r := s
        end 
        if r ~= 0 then
            d := ", " || int$unparse(r) || " " || units[i] || d
        end
    end
    return(string$rest(d,3))
end duration

start_up = proc ()
    po: stream := stream$primary_output()
    tests: array[int] := array[int]$[7259,86400,6000000]
    
    for test: int in array[int]$elements(tests) do
        stream$putl(po, int$unparse(test) || " => " || duration(test))
    end
end start_up

  

You may also check:How to resolve the algorithm Date manipulation step by step in the REBOL programming language
You may also check:How to resolve the algorithm Number reversal game step by step in the Action! programming language
You may also check:How to resolve the algorithm Commatizing numbers step by step in the ALGOL 68 programming language
You may also check:How to resolve the algorithm Perfect shuffle step by step in the C programming language
You may also check:How to resolve the algorithm Find limit of recursion step by step in the Phixmonti programming language