Avatar ·

كيفية حساب الوقت النسبي في 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} ساعة"; // ... وهكذا، لكن هذا ليس جميلاً ولا يراعي التصريفات