Avatar ·

C# में सापेक्ष समय (जैसे "2 घंटे पहले") की गणना कैसे करें?

सभी को नमस्ते! मैं एक शुरुआती C# डेवलपर हूँ और मुझे इस समस्या का सामना करना पड़ा: तारीख को "सापेक्ष समय" प्रारूप में दिखाना है — जैसे सोशल नेटवर्क में किया जाता है। "01.03.2024 14:30" के बजाय "5 मिनट पहले", "कल", "3 दिन पहले" इत्यादि होना चाहिए। उदाहरण के लिए, मेरे पास टिप्पणियों की एक सूची है जिसमें `DateTime CreatedAt` फ़ील्ड है। मैं उपयोगकर्ता को दिखाना चाहता हूँ कि निर्माण के बाद से कितना समय बीत चुका है। लेकिन मानक `DateTime.ToString()` केवल पूर्ण तारीख दिखाता है। मैंने एक सरल फ़ंक्शन लिखने की कोशिश की, लेकिन यह गलत काम करता है — सीमाओं को गलत तरीके से संभालता है (जैसे "1 दिन पहले" के बजाय "कल"), यदि 24 घंटे से कम समय बीता हो तो कल के दिन को ध्यान में नहीं रखता, और कुल मिलाकर बहुत बुरा दिखता है: ```csharp public string GetRelativeTime(DateTime dateTime) { var span = DateTime.Now - dateTime; if (span.TotalMinutes < 60) return $"{(int)span.TotalMinutes} मिनट पहले"; if (span.TotalHours < 24) return $"{(int)span.TotalHours} घंटे पहले"; if (span.TotalDays < 2) return "कल"; ```