C# में DateTime.CompareTo() मेथड इस इंस्टेंस के मान की तुलना निर्दिष्ट DateTime मान से करता है। यह एक पूर्णांक लौटाता है जो सापेक्ष क्रम को दर्शाता है।
सिंटैक्स
public int CompareTo (DateTime val);
पैरामीटर val तुलना की जाने वाली तिथि है।
वापसी मान
- < 0 - यदि यह इंस्टेंस val से पहले (earlier) है
- 0 - यदि यह इंस्टेंस val के समान है
- > 0 - यदि यह इंस्टेंस val के बाद (later) है
उदाहरण 1: समान तिथियां
using System;
public class Demo
{
public static void Main()
{
DateTime date1 = new DateTime(2019, 05, 20, 6, 20, 40);
DateTime date2 = new DateTime(2019, 05, 20, 6, 20, 40);
Console.WriteLine("DateTime 1 = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", date1);
Console.WriteLine("DateTime 2 = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", date2);
int res = date1.CompareTo(date2);
// 0 लौटाता है क्योंकि date1, date2 के समान है
Console.WriteLine(res);
}
}
आउटपुट
DateTime 1 = 20 May 2019, 06:20:40 DateTime 2 = 20 May 2019, 06:20:40 0
उदाहरण 2: बाद की तिथि (पहला बाद में)
using System;
public class Demo
{
public static void Main()
{
DateTime date1 = new DateTime(2019, 08, 20, 6, 20, 40);
DateTime date2 = new DateTime(2019, 05, 20, 6, 20, 40);
Console.WriteLine("DateTime 1 = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", date1);
Console.WriteLine("DateTime 2 = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", date2);
int res = date1.CompareTo(date2);
// >0 लौटाता है क्योंकि date1, date2 से बाद में है
Console.WriteLine(res);
}
}
आउटपुट
DateTime 1 = 20 August 2019, 06:20:40 DateTime 2 = 20 May 2019, 06:20:40 1
उदाहरण 3: व्यावहारिक उपयोग - सॉर्टिंग
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
List dates = new List
{
new DateTime(2023, 12, 25),
new DateTime(2023, 1, 1),
new DateTime(2023, 7, 4),
new DateTime(2023, 11, 11)
};
// CompareTo का उपयोग करके सॉर्ट करें
dates.Sort((a, b) => a.CompareTo(b));
Console.WriteLine("क्रमबद्ध तिथियां:");
foreach (var d in dates)
Console.WriteLine(d.ToShortDateString());
}
}
आउटपुट
क्रमबद्ध तिथियां: 1/1/2023 7/4/2023 11/11/2023 12/25/2023
महत्वपूर्ण: Kind प्रॉपर्टी का प्रभाव
DateTime utc = new DateTime(2023, 1, 1, 12, 0, 0, DateTimeKind.Utc); DateTime local = new DateTime(2023, 1, 1, 12, 0, 0, DateTimeKind.Local); Console.WriteLine(utc.CompareTo(local)); // 0 नहीं! अलग Kind Console.WriteLine(utc.Ticks == local.Ticks); // True (समान टिक्स)
मुख्य बिंदु
- IComparable<DateTime> इंटरफेस को लागू करता है
- तुलना Ticks और Kind दोनों पर आधारित होती है
- Kind अलग होने पर समान टिक्स वाले DateTime भी असमान माने जाते हैं
- सॉर्टिंग, बाइनरी सर्च, और क्रम-आधारित एल्गोरिदम के लिए उपयोगी
- null तुलना के लिए ArgumentException फेंकता है