Convert seconds to compound duration: Difference between revisions
Content added Content deleted
Langurmonkey (talk | contribs) |
(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}}== |