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}}== |