Convert seconds to compound duration: Difference between revisions
Content added Content deleted
(Added PicoLisp) |
No edit summary |
||
Line 1,156: | Line 1,156: | ||
-666 >< |
-666 >< |
||
</pre> |
</pre> |
||
=={{header|freebasic}}== |
|||
<lang freebasic> |
|||
'FreeBASIC version 1.05 32/64 bit |
|||
Sub Show(m As Long) |
|||
Dim As Long c(1 To 5)={604800,86400,3600,60,1} |
|||
Dim As String g(1 To 5)={" Wk"," d"," hr"," min"," sec"},comma |
|||
Dim As Long b(1 To 5),flag,m2=m |
|||
Redim As Long s(0) |
|||
For n As Long=1 To 5 |
|||
If m>=c(n) Then |
|||
Do |
|||
Redim Preserve s(Ubound(s)+1) |
|||
s(Ubound(s))=c(n) |
|||
m=m-c(n) |
|||
Loop Until m<c(n) |
|||
End If |
|||
Next n |
|||
For n As Long=1 To Ubound(s) |
|||
For m As Long=1 To 5 |
|||
If s(n)=c(m) Then b(m)+=1 |
|||
Next m |
|||
Next n |
|||
Print m2;" seconds = "; |
|||
For n As Long=1 To 5 |
|||
If b(n) Then: comma=Iif(n<5 Andalso b(n+1),","," and"):flag+=1 |
|||
If flag=1 Then comma="" |
|||
Print comma;b(n);g(n); |
|||
End If |
|||
Next |
|||
Print |
|||
End Sub |
|||
#define seconds |
|||
Show 7259 seconds |
|||
Show 86400 seconds |
|||
Show 6000000 seconds |
|||
sleep |
|||
</lang> |
|||
Output: |
|||
<pre> |
|||
7259 seconds = 2 hr and 59 sec |
|||
86400 seconds = 1 d |
|||
6000000 seconds = 9 Wk, 6 d, 10 hr and 40 min |
|||
</pre> |
|||
=={{header|Haskell}}== |
=={{header|Haskell}}== |