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
No answers yet.
Inicia sesión para dejar una respuesta
Blogs