TimeSpan ToHumanTimeString

        /// <summary>
        /// Converts <see cref="TimeSpan"/> objects to a simple human-readable string.  Examples: 3.1 seconds, 2 minutes, 4.23 hours, etc.
        /// </summary>
        /// <param name="span">The timespan.</param>
        /// <param name="significantDigits">Significant digits to use for output.</param>
        /// <returns></returns>
        public static string ToHumanTimeString(this TimeSpan span, int significantDigits = 3)
        {
            var format = "G" + significantDigits;
            return span.TotalMilliseconds < 1000 ? span.TotalMilliseconds.ToString(format)  + " milliseconds"
                : (span.TotalSeconds < 60 ? span.TotalSeconds.ToString(format)             + " seconds"
                    : (span.TotalMinutes < 60 ? span.TotalMinutes.ToString(format)           + " minutes"
                        : (span.TotalHours < 24 ? span.TotalHours.ToString(format)           + " hours"
                                                : span.TotalDays.ToString(format)           + " days")));
        }
Example:
var stopwatch = new StopWatch();
stopwatch.Start();
Thread.Sleep(10000);
stopwatch.Stop();
Debug.WriteLine("That just took {0}", stopwatch.Elapsed.ToHumanTimeString());

Description

Light-weight extension to output time. If you need additional human readable strings

Details

Double click on the code to select all.

 

;