Convert seconds to compound duration: Difference between revisions

m (→‎{{header|RPL}}: variant for recent versions)
 
(10 intermediate revisions by 4 users not shown)
Line 1,555:
=={{header|EasyLang}}==
<syntaxhighlight lang="text">
func$ split sec . s$ .
divs[] = [ 60 60 24 7 ]
n$[] = [ "sec" "min" "hr" "d" "wk" ]
len r[] 5
for i = 1 to 4
r[i] = sec mod divs[i]
sec = sec div divs[i]
.
r[5] = sec
s$ for i = ""5 downto 1
for i = 5 downtoif r[i] <> 10
if r[i]s$ <> 0""
if s$ <>&= ", "
s$ &= ", ".
s$ &= r[i] & " " & n$[i]
.
.
s$ &= r[i] & " " & n$[i]
return .s$
.
.
callprint split 7259 s$
print s$split 86400
callprint split 86400 s$6000000
print s$
call split 6000000 s$
print s$
</syntaxhighlight>
 
Line 2,484 ⟶ 2,481:
 
=={{header|K}}==
{{works with|ngn/k}}<syntaxhighlight lang=K>F:{", "/" "/'+($x[s]),s:,&0<x}(" "\"wk d hr min sec")!0 7 24 60 60\</syntaxhighlight>
 
Examples:
Line 2,548 ⟶ 2,545:
86400 -> 1 d
6000000 -> 9 wk, 6 d, 10 hr, 40 min
</pre>
 
=={{header|langur}}==
<syntaxhighlight lang="langur">val .duration = fn(var .sec) {
[
fw/wk d hr min sec/,
for[=[]] .dm in [7 * 24 * 60 * 60, 24 * 60 * 60, 60 * 60, 60] {
_for ~= [.sec \ .dm]
.sec rem= .dm
} ~ [.sec],
]
}
 
for .seconds in [7259, 86400, 6000000] {
val .dur = .duration(.seconds)
write $"\.seconds:7; sec = "
writeln join ", ", for[=[]] .k of .dur[1] {
if .dur[2][.k] != 0: _for ~= [$"\.dur[2][.k]; \.dur[1][.k];"]
}
}
</syntaxhighlight>
 
{{out}}
<pre> 7259 sec = 2 hr, 59 sec
86400 sec = 1 d
6000000 sec = 9 wk, 6 d, 10 hr, 40 min
</pre>
 
Line 4,281 ⟶ 4,304:
 
=={{header|Wren}}==
<syntaxhighlight lang="ecmascriptwren">var duration = Fn.new { |s|
if (s < 1) return "0 sec"
var dur = ""
885

edits