C#-এ DateTime.Equals() মেথডটি দুটি DateTime অবজেক্ট বা ইনস্ট্যান্স সমান কিনা তা যাচাই করতে ব্যবহৃত হয়। এটি স্ট্যাটিক এবং ইনস্ট্যান্স দুটি ভেজনেই উপলব্ধ। সমান হলে true, না হলে false ফেরত দেয়।
সিনট্যাক্স (Syntax)
স্ট্যাটিক ভার্সন:
public static bool Equals(DateTime t1, DateTime t2);
ইনস্ট্যান্স ভার্সন:
public override bool Equals(object value);
public bool Equals(DateTime value);
উদাহরণ ১: স্ট্যাটিক Equals() ব্যবহার (ভিন্ন তারিখ)
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.
উদাহরণ ২: সমান 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
গুরুত্বপূর্ণ দিক: Kind প্রোপার্টির প্রভাব
DateTime.Equals() টিক্স (Ticks) এবং Kind প্রোপার্টি (Local, Utc, Unspecified) দুটি মিলে সমানতা নির্ধারণ করে।
উদাহরণ: Kind পার্থক্যের প্রভাব
using System;
public class Demo
{
public static void Main()
{
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: " + DateTime.Equals(utc, local)); // False
Console.WriteLine("Utc == Unspecified: " + DateTime.Equals(utc, unspecified)); // False
Console.WriteLine("Local == Unspecified: " + DateTime.Equals(local, unspecified)); // False
// কিন্তু টিক্স সমান
Console.WriteLine("Utc.Ticks == Local.Ticks: " + (utc.Ticks == local.Ticks)); // True
}
}
সর্বোত্তম অনুশীলন (Best Practices)
- তুলনার আগে দুটি DateTime-কে একই Kind-এ আনার জন্য
ToUniversalTime()বাToLocalTime()ব্যবহার করুন - স্ট্যাটিক
DateTime.Equals(t1, t2)ব্যবহার করলে null চেক করার প্রয়োজন নেই - অপারেটর
==ও!=ও একই কাজ করে