36
1
using System;
2
3
using System.Collections.Generic;
4
5
public class Program
6
{
7
public static void Main()
8
{
9
Console.Write("HumanReadableTimeSpan ran for ");
10
Console.WriteLine(ToHumanReadableTimeSpan(1234567));
11
12
}
13
14
public static string ToHumanReadableTimeSpan(long milliseconds)
15
{
16
if (milliseconds == 0) return "0ms";
17
18
List<string> tsparts = new List<string>();
19
20
//Fri 22-Sep-17 3:40pm metadataconsulting.blogspot.com - added formating
21
Action<int, string, int> add = (val, displayunit, zeroplaceholder) => { if (val > 0) tsparts.Add(string.Format("{0:DL}X".Replace("X", displayunit).Replace("L",zeroplaceholder.ToString()), val)); };
22
//Action<int, string> add = (val, unit) => { if (val > 0) tsparts.Add(string.Format("{0:D1}X".Replace("X", unit), val)); };
23
//Action<int, string> add = (val, unit) => { if (val > 0) tsparts.Add(val+unit); };
24
25
TimeSpan t = TimeSpan.FromMilliseconds(milliseconds);
26
27
add(t.Days, "d", 1);
28
add(t.Hours, "h", 1);
29
add(t.Minutes, "m", 1);
30
add(t.Seconds, "s", 1);
31
add(t.Milliseconds, "ms",3);
32
33
return string.Join(" ", tsparts);
34
}
35
36
}
Cached Result