Convert seconds to compound duration: Difference between revisions
Content added Content deleted
m (→version 2: added/changed comments and whitespace.) |
|||
Line 490: | Line 490: | ||
=={{header|C sharp}}== |
=={{header|C sharp}}== |
||
===C#: Standard method=== |
|||
<lang csharp>using System; |
<lang csharp>using System; |
||
using System.Collections.Generic; |
using System.Collections.Generic; |
||
Line 512: | Line 514: | ||
} |
} |
||
return ; |
|||
} |
} |
||
Line 552: | Line 553: | ||
6,000,000 seconds ==> 9 wk, 6 d, 10 h, 40 m |
6,000,000 seconds ==> 9 wk, 6 d, 10 h, 40 m |
||
</pre> |
</pre> |
||
===C#: Using the TimeSpan struct and query syntax=== |
|||
{{libheader|System}} |
|||
{{libheader|System.Collections.Generic}} |
|||
{{libheader|System.Linq}} |
|||
{{works with|C sharp|6}} |
|||
<lang csharp>private static string ConvertToCompoundDuration(int seconds) |
|||
{ |
|||
if (seconds < 0) throw new ArgumentOutOfRangeException(nameof(seconds)); |
|||
if (seconds == 0) return "0 sec"; |
|||
TimeSpan span = TimeSpan.FromSeconds(seconds); |
|||
int[] parts = {span.Days / 7, span.Days % 7, span.Hours, span.Minutes, span.Seconds}; |
|||
string[] units = {" wk", " d", " hr", " min", " sec"}; |
|||
return string.Join(", ", |
|||
from index in Enumerable.Range(0, units.Length) |
|||
where parts[index] > 0 |
|||
select parts[index] + units[index]); |
|||
}</lang> |
|||
=={{header|C++}}== |
=={{header|C++}}== |