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());
}
}
আউটপুট: ১/১/২০২৩, ৪/৭/২০২৩, ২৫/১২/২০২৩