How to resolve the algorithm Convert seconds to compound duration step by step in the D 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 D 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 D programming language
Source code in the d programming language
import std.stdio, std.conv, std.algorithm;
immutable uint SECSPERWEEK = 604_800;
immutable uint SECSPERDAY = 86_400;
immutable uint SECSPERHOUR = 3_600;
immutable uint SECSPERMIN = 60;
string ConvertSeconds(in uint seconds)
{
uint rem = seconds;
uint weeks = rem / SECSPERWEEK;
rem %= SECSPERWEEK;
uint days = rem / SECSPERDAY;
rem %= SECSPERDAY;
uint hours = rem / SECSPERHOUR;
rem %= SECSPERHOUR;
uint mins = rem / SECSPERMIN;
rem %= SECSPERMIN;
string formatted = "";
(weeks != 0) ? formatted ~= (weeks.to!string ~ " wk, ") : formatted;
(days != 0) ? formatted ~= (days.to!string ~ " d, ") : formatted;
(hours != 0) ? formatted ~= (hours.to!string ~ " hr, ") : formatted;
(mins != 0) ? formatted ~= (mins.to!string ~ " min, ") : formatted;
(rem != 0) ? formatted ~= (rem.to!string ~ " sec") : formatted;
if (formatted.endsWith(", ")) return formatted[0..$-2];
return formatted;
}
void main()
{
7_259.ConvertSeconds.writeln;
86_400.ConvertSeconds.writeln;
6_000_000.ConvertSeconds.writeln;
}
You may also check:How to resolve the algorithm Count occurrences of a substring step by step in the Lua programming language
You may also check:How to resolve the algorithm AKS test for primes step by step in the PureBasic programming language
You may also check:How to resolve the algorithm Five weekends step by step in the Arturo programming language
You may also check:How to resolve the algorithm Determine if only one instance is running step by step in the Julia programming language
You may also check:How to resolve the algorithm Terminal control/Ringing the terminal bell step by step in the Racket programming language