How to resolve the algorithm Convert seconds to compound duration step by step in the Liberty BASIC 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 Liberty BASIC 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 Liberty BASIC programming language
Source code in the liberty programming language
[start]
input "Enter SECONDS: "; seconds
seconds=int(abs(seconds))
if seconds=0 then print "Program complete.": end
UnitsFound=0: LastFound$=""
years=int(seconds/31449600): seconds=seconds mod 31449600
if years then LastFound$="years"
weeks=int(seconds/604800): seconds=seconds mod 604800
if weeks then LastFound$="weeks"
days=int(seconds/86400): seconds=seconds mod 86400
if days then LastFound$="days"
hours=int(seconds/3600): seconds=seconds mod 3600
if hours then LastFound$="hours"
minutes=int(seconds/60): seconds=seconds mod 60
if minutes then LastFound$="minutes"
if seconds then LastFound$="seconds"
select case years
case 0
case 1: print years; " year";
case else: print years; " years";
end select
select case weeks
case 0
case 1
if years then
if LastFound$="weeks" then print " and "; else print ", ";
end if
print weeks; " week";
case else
if years then
if LastFound$="weeks" then print " and "; else print ", ";
end if
print weeks; " weeks";
end select
select case days
case 0
case 1
if years or weeks then
if LastFound$="days" then print " and "; else print ", ";
end if
print days; " day";
case else
if years or weeks then
if LastFound$="days" then print " and "; else print ", ";
end if
print days; " days";
end select
select case hours
case 0
case 1
if years or weeks or days then
if LastFound$="hours" then print " and "; else print ", ";
end if
print hours; " hour";
case else
if years or weeks or days then
if LastFound$="hours" then print " and "; else print ", ";
end if
print hours; " hours";
end select
select case minutes
case 0
case 1
if years or weeks or days or hours then
if LastFound$="minutes" then print " and "; else print ", ";
end if
print minutes; " minute";
case else
if years or weeks or days or hours then
if LastFound$="minutes" then print " and "; else print ", ";
end if
print minutes; " minutes";
end select
select case seconds
case 0
case 1
if years or weeks or days or hours or minutes then
if LastFound$="seconds" then print " and "; else print ", ";
end if
print seconds; " second";
case else
if years or weeks or days or hours or minutes then
if LastFound$="seconds" then print " and "; else print ", ";
end if
print seconds; " seconds";
end select
print
goto [start]
You may also check:How to resolve the algorithm Sort using a custom comparator step by step in the Euphoria programming language
You may also check:How to resolve the algorithm Integer comparison step by step in the Ring programming language
You may also check:How to resolve the algorithm Zsigmondy numbers step by step in the Raku programming language
You may also check:How to resolve the algorithm Validate International Securities Identification Number step by step in the XPL0 programming language
You may also check:How to resolve the algorithm Walk a directory/Non-recursively step by step in the Euphoria programming language