Feedback

C# - TimeUtils.ToHumanReadableTimespan

Veröffentlicht von am 11/2/2015
(0 Bewertungen)
Konvertiert eine Zeitspanne von Millisekunden zu einer sinnvollen Größe mit Einheit.

public static string ToHumanReadableTimespan(long miliseconds)
    {
        const int SEC = 1000;
        const int MIN = 60*SEC;
        const int H = MIN*60;

        var timeSpan = TimeSpan.FromMilliseconds(miliseconds);

        if (miliseconds < 1000) return string.Format("{0} ms", timeSpan.Milliseconds);

        if (miliseconds/SEC < 60) return string.Format("{0} sec", timeSpan.Seconds);

        if (miliseconds/MIN < 60) return string.Format("{0}:{1:00} min", timeSpan.Minutes, timeSpan.Seconds);

        if (miliseconds/H < 24) return string.Format("{0}:{1:00}:{2:00} hours", timeSpan.Hours, timeSpan.Minutes, timeSpan.Seconds);

        return string.Format("{0}:{1:00}:{2:00}:{3:00} days", timeSpan.Days, timeSpan.Hours, timeSpan.Minutes, timeSpan.Seconds);
    }
Abgelegt unter Zeit, Zeitspanne, lesbar.

1 Kommentare zum Snippet

Koopakiller schrieb am 12/2/2015:
Warum nimmst du nicht gleich ein TimeSpan entgegen? Wenn man eine Zeitspanne hat, dann hat man i.d.R. auch ein solches Objekt und nicht nur eine Zahl.
Außerdem, warum rufst du nicht einfach ToString mit dem String-Format Parameter auf? Das ist meiner Meinung nach einfacher zu lesen.
 

Logge dich ein, um hier zu kommentieren!