كيفية حساب الوقت النسبي في C# (مثل "منذ 5 دقائق"، "أمس")؟
مرحباً بالجميع! أنا أكتب تطبيقاً صغيراً بلغة C# (Windows Forms) لتسجيل الأحداث. أحتاج إلى عرض تاريخ ووقت كل حدث ليس بتنسيق مطلق (مثل "2023-10-05 14:30:00")، بل بتنسيق نسبي — كما يحدث في وسائل التواصل الاجتماعي أو تطبيقات المراسلة: "الآن فقط"، "منذ 5 دقائق"، "منذ ساعتين"، "أمس"، "منذ 3 أيام"، إلخ.
أنا مبتدئ في C# وحالياً أتصور الحل فقط من خلال مجموعة من if-else، لكن هذا يبدو فظيعاً ومتشعباً. على سبيل المثال، لدي متغير `DateTime eventTime`، وأريد الحصول على سلسلة مثل "منذ 15 دقيقة".
هذا هو "الكود" الحالي (أو بالأحرى مسودة) الذي حاولت كتابته:
```csharp
DateTime now = DateTime.Now;
TimeSpan diff = now - eventTime;
if (diff.TotalMinutes < 1)
return "الآن فقط";
else if (diff.TotalMinutes < 60)
return $"منذ {(int)diff.TotalMinutes} دقيقة";
else if (diff.TotalHours < 24)
return $"منذ {(int)diff.TotalHours} ساعة";
// ... وهكذا، لكن هذا ليس جميلاً ولا يراعي التصريفات