Como calcular tempo relativo em C# (tipo "5 minutos atrás", "ontem")?
Olá a todos! Estou escrevendo um pequeno aplicativo em C# (Windows Forms) para registrar logs de eventos. Preciso exibir a data e hora de cada evento não no formato absoluto (por exemplo, "2023-10-05 14:30:00"), mas no relativo — como é feito em redes sociais ou mensageiros: "agora mesmo", "5 minutos atrás", "2 horas atrás", "ontem", "3 dias atrás" etc.
Sou iniciante em C# e por enquanto só consigo imaginar a solução através de um monte de if-else, mas isso parece terrivelmente complicado. Por exemplo, tenho uma variável `DateTime eventTime` e quero obter uma string como "15 minutos atrás".
Aqui está meu "código" atual (ou melhor, um rascunho) que tentei escrever:
```csharp
DateTime now = DateTime.Now;
TimeSpan diff = now - eventTime;
if (diff.TotalMinutes < 1)
return "agora mesmo";
else if (diff.TotalMinutes < 60)
return $"{(int)diff.TotalMinutes} minutos atrás";
else if (diff.TotalHours < 24)
return $"{(int)diff.TotalHours} horas atrás";
// ... e assim por diante, mas isso não é bonito e não considera as variações de