Wie berechnet man relative Zeit (z.B. "vor 2 Stunden") in C#?
Hallo zusammen! Ich bin ein Anfänger C#-Entwickler und bin auf folgende Aufgabe gestoßen: Ich muss ein Datum im Format "relative Zeit" anzeigen – so wie es in sozialen Netzwerken gemacht wird. Statt "01.03.2024 14:30" soll "vor 5 Minuten", "gestern", "vor 3 Tagen" usw. angezeigt werden.
Zum Beispiel habe ich eine Liste von Kommentaren mit einem Feld `DateTime CreatedAt`. Ich möchte dem Benutzer anzeigen, wie viel Zeit seit der Erstellung vergangen ist. Aber die Standardmethode `DateTime.ToString()` gibt nur das absolute Datum aus.
Ich habe versucht, eine einfache Funktion zu schreiben, aber sie funktioniert nicht richtig – sie behandelt die Grenzen falsch (z.B. "gestern" statt "vor 1 Tag"), berücksichtigt nicht den gestrigen Tag, wenn weniger als 24 Stunden vergangen sind, und sieht insgesamt schrecklich aus:
```csharp
public string GetRelativeTime(DateTime dateTime)
{
var span = DateTime.Now - dateTime;
```