Convert seconds to compound duration: Difference between revisions

Content added Content deleted
(Added Uiua solution)
Line 4,151: Line 4,151:


0 OK, 0:94</pre>
0 OK, 0:94</pre>

=={{header|Uiua}}==
{{Works with|Uiua|0.12.0-dev.1}}
[https://www.uiua.org/pad?src=0_12_0-dev_1__IyBCdWlsZHMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSB0aW1lIHBlcmlvZAoKVW5pdHMg4oaQIHsic2Vjb25kIiAibWludXRlIiAiaG91ciIgImRheSIgIndlZWsifQpEdXJhdGlvbnMg4oaQIFs2MCA2MCAyNCA3IDk5OTldCgojIG51bWJlci1vZi1zZWNvbmRzIC0-IFtTIE0gSCBEIFddClBhcnRzIOKGkCDih4wo4peM4oinKOKKmeKKguKKgyjijIrDt3zil78pKSBEdXJhdGlvbnPiiplbXSkKIyBTdHJpbmdpZnkgYSB1bml0OiB7IlgiICJ1bml0In0gLT4gYm94IlggdW5pdHMiICAgICAgIApTdW5pdCDihpAgL-KNmijiioLiioIpIiAi4o2l4o2cKOKKoTF84o2a4oqC4oqZQHMp4omg4pahIjEi4oqiLgojIFBhcnNlIHNlY29uZHMgYXMgYSBzdHJpbmcgcGVyaW9kOiBOIC0-ICJ4eHgiICAgIApTdHJpbmcg4oaQIMKw4pah4oqiL-KNmiQiXywgXyLih4ziiaFTdW5pdOKWveKKgyjCsXzijYnih4ziip9Vbml0c8Kw4ouVKSBQYXJ0cwriiLUoW-KWoVN0cmluZ10pWzcyNTkgODY0MDAgNjAwMDAwMCAxNDAwMDAwMCAzMTQ0OTU5OSAzMTQ0OTYwMV0K Run it in Uiua Pad!]
<syntaxhighlight lang="uiua">
# Builds a string representation of a time period

Units ← {"second" "minute" "hour" "day" "week"}
Durations ← [60 60 24 7 9999]

# number-of-seconds -> [S M H D W]
Parts ← ⇌(◌∧(⊙⊂⊃(⌊÷|◿)) Durations⊙[])
# Stringify a unit: {"X" "unit"} -> box"X units"
Sunit ← /⍚(⊂⊂)" "⍥⍜(⊡1|⍚⊂⊙@s)≠□"1"⊢.
# Parse seconds as a string period: N -> "xxx"
String ← °□⊢/⍚$"_, _"⇌≡Sunit▽⊃(±|⍉⇌⊟Units°⋕) Parts
∵([□String])[7259 86400 6000000 14000000 31449599 31449601]
</syntaxhighlight>
{{out}}
<pre>
╭─
╷ ⌜2 hours, 59 seconds⌟
⌜1 day⌟
⌜9 weeks, 6 days, 10 hours, 40 minutes⌟
⌜23 weeks, 1 day, 53 minutes, 20 seconds⌟
⌜51 weeks, 6 days, 23 hours, 59 minutes, 59 seconds⌟
⌜52 weeks, 1 second⌟
</pre>


=={{header|Vale}}==
=={{header|Vale}}==