Convert seconds to compound duration: Difference between revisions

Content added Content deleted
(Added Elixir)
Line 70: Line 70:


=={{header|Ada}}==
=={{header|Ada}}==



<lang Ada>with Ada.Text_IO;
<lang Ada>with Ada.Text_IO;


Line 181: Line 178:
9 wk, 6 d, 10 hr, 40 min
9 wk, 6 d, 10 hr, 40 min
</pre>
</pre>



=={{header|AppleScript}}==
=={{header|AppleScript}}==



{{Trans|JavaScript}}
{{Trans|JavaScript}}
Line 438: Line 433:
6000000 sec = 9 wk, 6 d, 10 hr, 40 min
6000000 sec = 9 wk, 6 d, 10 hr, 40 min
</pre>
</pre>



=={{header|beeswax}}==
=={{header|beeswax}}==
Line 850: Line 844:
Enter duration (seconds): 6000000
Enter duration (seconds): 6000000
9 wk, 6 d, 10 hr, 40 min</pre>
9 wk, 6 d, 10 hr, 40 min</pre>

=={{header|D}}==
=={{header|D}}==
<lang d>
<lang d>
Line 899: Line 894:
</pre>
</pre>


=={{header|Elixir}}==
<lang elixir>defmodule Convert do
@minute 60
@hour @minute*60
@day @hour*24
@week @day*7
@divisor [@week, @day, @hour, @minute, 1]
def sec_to_str(sec) do
{_, [s, m, h, d, w]} =
Enum.reduce(@divisor, {sec,[]}, fn divisor,{n,acc} ->
{rem(n,divisor), [div(n,divisor) | acc]}
end)
["#{w} wk", "#{d} d", "#{h} hr", "#{m} min", "#{s} sec"]
|> Enum.reject(fn str -> String.starts_with?(str, "0") end)
|> Enum.join(", ")
end
end

Enum.each([7259, 86400, 6000000], fn sec ->
:io.fwrite "~10w sec : ~s~n", [sec, Convert.sec_to_str(sec)]
end)</lang>

{{out}}
<pre>
7259 sec : 2 hr, 59 sec
86400 sec : 1 d
6000000 sec : 9 wk, 6 d, 10 hr, 40 min
</pre>


=={{header|Erlang}}==
=={{header|Erlang}}==
Line 1,273: Line 1,297:
86400: 1 d
86400: 1 d
6000000: 9 wk, 6 d, 10 hr, 40 min</lang>
6000000: 9 wk, 6 d, 10 hr, 40 min</lang>



=={{header|Lua}}==
=={{header|Lua}}==