Avatar ·

Cómo calcular el tiempo relativo en C# (tipo "hace 5 minutos", "ayer")?

¡Hola a todos! Estoy escribiendo una pequeña aplicación en C# (Windows Forms) para llevar un registro de eventos. Necesito mostrar la fecha y hora de cada evento no en formato absoluto (por ejemplo, "2023-10-05 14:30:00"), sino en formato relativo, como se hace en redes sociales o mensajería: "justo ahora", "hace 5 minutos", "hace 2 horas", "ayer", "hace 3 días", etc. Soy nuevo en C# y por ahora solo imagino una solución con un montón de if-else, pero se ve terriblemente engorroso. Por ejemplo, tengo una variable `DateTime eventTime` y quiero obtener una cadena como "hace 15 minutos". Aquí está mi "código" actual (más bien un borrador) que intenté escribir: ```csharp DateTime now = DateTime.Now; TimeSpan diff = now - eventTime; if (diff.TotalMinutes < 1) return "justo ahora"; else if (diff.TotalMinutes < 60) return $"{(int)diff.TotalMinutes} minutos atrás"; else if (diff.TotalHours < 24) return $"{(int)diff.TotalHours} horas atrás"; // ... y así sucesivamente, pero esto no es bonito y no considera las declinaciones