Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में DateTime.CompareTo() मेथड - दो DateTime की तुलना

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 फेंकता है
  1. - C# में DateTime.Subtract() मेथड - तिथि/समय घटाएं

    C# में DateTime.Subtract() मेथड निर्दिष्ट DateTime या TimeSpan को वर्तमान इंस्टेंस से घटाता है। इसके दो ओवरलोड हैं जो अलग-अलग प्रकार लौटाते हैं। सिंटैक्स दो ओवरलोड: public TimeSpan Subtract (DateTime value); // DateTime घटाएं → TimeSpan लौटाता है public DateTime Subtract (TimeSpan value); //

  1. - C# में DateTimeOffset.CompareTo() मेथड - DateTimeOffset तुलना

    C# में DateTimeOffset.CompareTo() मेथड वर्तमान DateTimeOffset ऑब्जेक्ट की तुलना निर्दिष्ट DateTimeOffset ऑब्जेक्ट से करता है और इंगित करता है कि वर्तमान ऑब्जेक्ट दूसरे से पहले, समान, या बाद में है। वापसी मान < 0 - यदि यह ऑब्जेक्ट val से पहले है 0 - यदि यह ऑब्जेक्ट val के समान है > 0 - यदि यह

  1. - C# में CompareTo() विधि

    दो मानों की तुलना करने के लिए, CompareTo() विधि का उपयोग करें। निम्न वापसी मान हैं: 0 = दोनों संख्याएं बराबर हैं 1 = दूसरी संख्या छोटी है -1 = पहली संख्या छोटी है C# में CompareTo() विधि को लागू करने का कोड यहां है: उदाहरण using System; public class Demo { public static void Main() {