কম্পিউটার টিউটোরিয়াল

C#-এ DateTime.CompareTo() মেথড: তারিখ তুলনা করার পদ্ধতি


C#-এ DateTime.CompareTo() মেথডটি বর্তমান DateTime ইনস্ট্যান্সকে অন্য একটি DateTime মানের সাথে তুলনা করে এবং তাদের আপেক্ষিক সম্পর্ক (আগে, পিছনে, বা সমান) নির্দেশ করে।

সিনট্যাক্স (Syntax)

public int CompareTo(DateTime value);

রিটার্ন ভ্যালু (Return Value)

মানঅর্থ
< 0বর্তমান ইনস্ট্যান্স value-এর চেয়ে আগে (earlier)
0দুটি ইনস্ট্যান্স সমান
> 0বর্তমান ইনস্ট্যান্স value-এর চেয়ে পরে (later)

উদাহরণ ১: সমান তারিখ তুলনা

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);
        // ০ ফেরত দেবে কারণ date1 == date2
        Console.WriteLine(res);
    }
}

আউটপুট

DateTime 1 = 20 May 2019, 06:20:40
DateTime 2 = 20 May 2019, 06:20:40
0

উদাহরণ ২: পরবর্তী তারিখ তুলনা

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

অতিরিক্ত উদাহরণ: আগের তারিখ তুলনা

using System;

public class Demo
{
    public static void Main()
    {
        DateTime earlier = new DateTime(2020, 1, 1);
        DateTime later = new DateTime(2020, 12, 31);
        
        Console.WriteLine($"earlier.CompareTo(later) = {earlier.CompareTo(later)}");  // -1
        Console.WriteLine($"later.CompareTo(earlier) = {later.CompareTo(earlier)}");    // 1
        Console.WriteLine($"earlier.CompareTo(earlier) = {earlier.CompareTo(earlier)}"); // 0
    }
}

Kind প্রোপার্টির প্রভাব

CompareTo() টিক্স (Ticks) এবং Kind (Local/Utc/Unspecified) দুটি বিবেচনা করে। ভিন্ন Kind-এ থাকলে অপ্রত্যাশিত ফলাফল দিতে পারে।

সামঞ্জস্যপূর্ণ তুলনার জন্য:

// উভয়কে UTC-এ রূপান্তর করে তুলনা
DateTime utc1 = date1.ToUniversalTime();
DateTime utc2 = date2.ToUniversalTime();
int result = utc1.CompareTo(utc2);

স্ট্যাটিক DateTime.Compare() মেথড

বিকল্প olarak স্ট্যাটিক মেথডও রয়েছে:

public static int Compare(DateTime t1, DateTime t2);

এটি t1.CompareTo(t2)-এর সমান ফলাফল দেয়।

সার্টিং (Sorting) এ প্রয়োগ

using System;
using System.Collections.Generic;

public class SortDemo
{
    public static void Main()
    {
        List dates = new List
        {
            new DateTime(2023, 12, 25),
            new DateTime(2023, 1, 1),
            new DateTime(2023, 7, 4)
        };
        
        dates.Sort((a, b) => a.CompareTo(b)); // অ্যাসেন্ডিং
        
        foreach (var d in dates)
            Console.WriteLine(d.ToShortDateString());
    }
}

আউটপুট: ১/১/২০২৩, ৪/৭/২০২৩, ২৫/১২/২০২৩

  1. C#-এ DateTime.ToBinary() মেথড: DateTimeকে ৬৪-বিট বাইনারি-এ সিরিয়ালাইজ

  2. C#-এ DateTime.Subtract() মেথড: তারিখ বা টাইমস্প্যান বিয়োগ করা

  3. C#-এ DateTimeOffset.CompareTo() মেথড: DateTimeOffset অবজেক্ট তুলনা

  4. C#-এ CompareTo মেথড