Como calcular tempo relativo (ex.: "2 horas atrás") em C#?
Olá a todos! Sou um desenvolvedor C# iniciante e me deparei com a seguinte tarefa: preciso exibir a data no formato de "tempo relativo" — como fazem nas redes sociais. Em vez de "01.03.2024 14:30", deve aparecer "5 minutos atrás", "ontem", "3 dias atrás" e assim por diante.
Por exemplo, tenho uma lista de comentários com o campo `DateTime CreatedAt`. Quero mostrar ao usuário quanto tempo passou desde a criação. Mas o `DateTime.ToString()` padrão só exibe a data absoluta.
Tentei escrever uma função simples, mas ela funciona de forma estranha — trata incorretamente os limites (ex.: "ontem" em vez de "1 dia atrás"), não considera o dia anterior se passaram menos de 24 horas, e no geral parece horrível:
```csharp
public string GetRelativeTime(DateTime dateTime)
{
var span = DateTime.Now - dateTime;
if (span.TotalMinutes < 60) return $"{(int)span.TotalMinutes} minutos atrás";
if (span.TotalHours < 24) return $"{(int)span.TotalHours} horas atrás";
if (span.TotalDays < 2) return "ontem";
```