C# में DateTime.Equals() मेथड का उपयोग यह जांचने के लिए किया जाता है कि क्या दो DateTime ऑब्जेक्ट या इंस्टेंस समान हैं या नहीं। यदि दोनों समान हैं तो TRUE लौटाता है, अन्यथा FALSE।
सिंटैक्स
स्टैटिक मेथड (दो DateTime तुलना के लिए):
public static bool Equals (DateTime date1, DateTime date2);
इंस्टेंस मेथड (वर्तमान इंस्टेंस की तुलना के लिए):
public override bool Equals (object value); public bool Equals (DateTime value);
उदाहरण 1: असमान DateTime (स्टैटिक मेथड)
using System;
public class Demo
{
public static void Main()
{
DateTime d1 = new DateTime(2019, 09, 10, 5, 15, 25);
DateTime d2 = d1.AddMonths(25);
Console.WriteLine("Initial DateTime = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
Console.WriteLine("\nNew DateTime (After adding months) = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d2);
bool res = DateTime.Equals(d1, d2);
if (res)
Console.WriteLine("\ndate1 = date2. ");
else
Console.WriteLine("\ndate1 is not equal to date2. ");
}
}
आउटपुट
Initial DateTime = 10 September 2019, 05:15:25 New DateTime (After adding months) = 10 October 2021, 05:15:25 date1 is not equal to date2.
उदाहरण 2: समान DateTime (स्टैटिक मेथड)
using System;
public class Demo
{
public static void Main()
{
DateTime d1 = new DateTime(2019, 11, 11, 7, 15, 30);
DateTime d2 = new DateTime(2019, 11, 11, 7, 15, 30);
Console.WriteLine("DateTime1 = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d1);
Console.WriteLine("\nDateTime2 = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", d2);
bool res = DateTime.Equals(d1, d2);
if (res)
Console.WriteLine("\ndate1 = date2 ");
else
Console.WriteLine("\ndate1 is not equal to date2 ");
}
}
आउटपुट
DateTime1 = 11 November 2019, 07:15:30 DateTime2 = 11 November 2019, 07:15:30 date1 = date2
उदाहरण 3: इंस्टेंस मेथड का उपयोग
using System;
public class Demo
{
public static void Main()
{
DateTime d1 = new DateTime(2023, 1, 15, 10, 30, 0);
DateTime d2 = new DateTime(2023, 1, 15, 10, 30, 0);
DateTime d3 = new DateTime(2023, 1, 15, 10, 30, 1); // 1 सेकंड अलग
Console.WriteLine("d1.Equals(d2): " + d1.Equals(d2)); // True
Console.WriteLine("d1.Equals(d3): " + d1.Equals(d3)); // False
Console.WriteLine("d1 == d2: " + (d1 == d2)); // True (ऑपरेटर ओवरलोड)
}
}
महत्वपूर्ण: 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);
DateTime unspecified = new DateTime(2023, 1, 1, 12, 0, 0, DateTimeKind.Unspecified);
Console.WriteLine("UTC == Local: " + utc.Equals(local)); // False (अलग Kind)
Console.WriteLine("UTC == Unspecified: " + utc.Equals(unspecified)); // False
Console.WriteLine("Ticks समान: " + (utc.Ticks == local.Ticks)); // True (समान टिक्स!)
मुख्य बिंदु
- दो DateTime तभी समान होते हैं जब Ticks और Kind दोनों समान हों
- स्टैटिक
DateTime.Equals(d1, d2)null-सेफ है - ऑपरेटर
==और!=भी ओवरलोडेड हैं और Equals() जैसा व्यवहार करते हैं - केवल टिक्स की तुलना के लिए
d1.Ticks == d2.Ticksका उपयोग करें (Kind अनदेखा करने के लिए) - समय क्षेत्र जागरूक तुलना के लिए DateTimeOffset का उपयोग करें