Heim >Backend-Entwicklung >C++ >Wie zeige ich die relative Zeit (z. B. 'vor 2 Stunden') aus einer DateTime in C#?

Wie zeige ich die relative Zeit (z. B. 'vor 2 Stunden') aus einer DateTime in C#?

Linda Hamilton
Linda HamiltonOriginal
2025-02-01 23:11:10937Durchsuche

How to Display Relative Time (e.g.,

Relative Zeit in C#

anzeigen

Dieser Artikel zeigt, wie man die relative Zeit (z. B. "vor 2 Stunden", "vor einem Monat") aus einem gegebenen DateTime -Werte in C#.

anzeigt

Die Lösung umfasst die folgenden Schritte:

  1. Berechnen Sie die Zeitdifferenz: Finden Sie die Differenz zwischen der aktuellen Zeit und der Eingabe DateTime.
  2. Konvertieren Sie die Differenz: Verwandeln Sie den Unterschied in Sekunden, Minuten, Stunden, Tagen oder Monaten, abhängig von der Größe.
  3. Formatieren Sie die Ausgabe: Erstellen Sie eine benutzerfreundliche relative Zeitzeichenfolge basierend auf der berechneten Differenz.

Hier ist ein C# Code -Beispiel:

<code class="language-csharp">const int SECOND = 1;
const int MINUTE = 60 * SECOND;
const int HOUR = 60 * MINUTE;
const int DAY = 24 * HOUR;
const int MONTH = 30 * DAY;

public static string GetRelativeTime(DateTime yourDate)
{
    TimeSpan ts = DateTime.UtcNow - yourDate;
    double delta = Math.Abs(ts.TotalSeconds);

    if (delta < 60)
    {
        return $"{Math.Round(delta)} seconds ago";
    }
    else if (delta < 3600)
    {
        return $"{Math.Round(delta / MINUTE)} minutes ago";
    }
    else if (delta < 86400)
    {
        return $"{Math.Round(delta / HOUR)} hours ago";
    }
    else if (delta < 2592000) // 30 days
    {
        return $"{Math.Round(delta / DAY)} days ago";
    }
    else
    {
        return $"{Math.Round(delta / MONTH)} months ago";
    }
}</code>

Diese Funktion GetRelativeTime nimmt eine DateTime als Eingabe und gibt eine Zeichenfolge zurück, die die relative Zeit darstellt. Es behandelt Sekunden, Minuten, Stunden, Tage und Monate. Sie können es leicht auf Jahre oder andere Zeiteinheiten erweitern. Die Verwendung von Math.Round bietet eine sauberere Ausgabe. Denken Sie daran, yourDate durch Ihre tatsächliche DateTime -Rariable zu ersetzen. Diese Methode verwendet DateTime.UtcNow für die Konsistenz; Sie können dies bei Bedarf an DateTime.Now anpassen. Die Verwendung von UTC wird im Allgemeinen für Zeitberechnungen bevorzugt, um Unklarheiten im Zusammenhang mit Zeitzonen zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie zeige ich die relative Zeit (z. B. 'vor 2 Stunden') aus einer DateTime in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn