| File: DatetimeUtility.cs | Web Access |
| Project: src\nuget-client\src\NuGet.Core\NuGet.Common\NuGet.Common.csproj (NuGet.Common) |
// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using System.Globalization; namespace NuGet.Common { /// <summary> /// static class to provide datetime common utility apis /// </summary> public static class DatetimeUtility { /// <summary> /// take timespan n return in appropriate unit like ms, or seconds, or minutes, or hours /// </summary> /// <param name="time">timespan</param> /// <returns>A human-readable timespan string</returns> public static string ToReadableTimeFormat(TimeSpan time) { return ToReadableTimeFormat(time, CultureInfo.CurrentCulture); } internal static string ToReadableTimeFormat(TimeSpan time, IFormatProvider format) { // initially define as hours double result = time.TotalHours; if (time.TotalSeconds < 1) { result = time.TotalMilliseconds; // If less than 1 ms, show only 1 significant figure if (result >= 1) { result = Math.Round(result, 0); } else if (result >= 0.1) { result = Math.Round(result, 1); } return string.Format(format, Strings.TimeUnits_Millisecond, result); } else if (time.TotalMinutes < 1) { result = time.TotalSeconds; return string.Format(format, Strings.TimeUnits_Second, result); } else if (time.TotalHours < 1) { result = time.TotalMinutes; return string.Format(format, Strings.TimeUnits_Minute, result); } return string.Format(format, Strings.TimeUnits_Hour, result); } } }