C#-এ DateTimeOffset.EqualsExact() মেথডটি নির্ধারণ করে যে বর্তমান DateTimeOffset অবজেক্টটি নির্দিষ্ট DateTimeOffset অবজেক্টের সাথে একই সময় এবং একই অফসেট 갖고 কিনা। সাধারণ Equals()-এর বিপরীতে, এটি UTC-এ কনভার্ট করে তুলনা করে না।
সিনট্যাক্স (Syntax)
public bool EqualsExact(DateTimeOffset other);
প্যারামিটার: other - তুলনা করার DateTimeOffset অবজেক্ট।
Equals() vs EqualsExact() - গুরুত্বপূর্ণ পার্থক্য
| মেথড | তুলনা লজিক | উদাহরণ ফলাফল |
|---|---|---|
Equals() | UTC-এ কনভার্ট করে তুলনা | 2023-01-01 12:00 +05:00 == 2023-01-01 07:00 +00:00 → True |
EqualsExact() | টিক্স + অফসেট উভয় মিলতে হবে | 2023-01-01 12:00 +05:00 == 2023-01-01 07:00 +00:00 → False |
উদাহরণ ১: একই সময় এবং একই অফসেট (True)
using System;
public class Demo
{
public static void Main()
{
DateTimeOffset dto1 = new DateTimeOffset(2019, 11, 09, 5, 30, 10, new TimeSpan(-5, 0, 0));
DateTimeOffset dto2 = new DateTimeOffset(2019, 11, 09, 5, 30, 10, new TimeSpan(-5, 0, 0));
Console.WriteLine("DateTimeOffset1 = {0}", dto1);
Console.WriteLine("DateTimeOffset2 = {0}", dto2);
bool res = dto1.EqualsExact(dto2);
if (res)
Console.Write("DateTimeOffset1 = DateTimeOffset2");
else
Console.Write("DateTimeOffset1 and DateTimeOffset2 are different");
}
}
আউটপুট
DateTimeOffset1 = 11/9/2019 5:30:10 AM -05:00 DateTimeOffset2 = 11/9/2019 5:30:10 AM -05:00 DateTimeOffset1 = DateTimeOffset2
উদাহরণ ২: ভিন্ন সময় বা অফসেট (False)
using System;
public class Demo
{
public static void Main()
{
DateTimeOffset dto1 = new DateTimeOffset(2019, 09, 09, 5, 30, 10, new TimeSpan(-5, 0, 0));
DateTimeOffset dto2 = new DateTimeOffset(2019, 11, 09, 9, 20, 20, new TimeSpan(-5, 0, 0));
Console.WriteLine("DateTimeOffset1 = {0}", dto1);
Console.WriteLine("DateTimeOffset2 = {0}", dto2);
bool res = dto1.EqualsExact(dto2);
if (res)
Console.Write("DateTimeOffset1 = DateTimeOffset2");
else
Console.Write("DateTimeOffset1 and DateTimeOffset2 are different");
}
}
আউটপুট
DateTimeOffset1 = 9/9/2019 5:30:10 AM -05:00 DateTimeOffset2 = 11/9/2019 9:20:20 AM -05:00 DateTimeOffset1 and DateTimeOffset2 are different
বিশেষ পরিস্থিতি: একই UTC মুহূর্ত, ভিন্ন অফসেট
using System;
public class Demo
{
public static void Main()
{
// একই UTC মুহূর্ত: 2023-01-01 12:00 UTC
DateTimeOffset dto1 = new DateTimeOffset(2023, 1, 1, 12, 0, 0, TimeSpan.Zero); // UTC
DateTimeOffset dto2 = new DateTimeOffset(2023, 1, 1, 17, 0, 0, new TimeSpan(5, 0, 0)); // UTC+5
Console.WriteLine($"dto1: {dto1}"); // 1/1/2023 12:00:00 PM +00:00
Console.WriteLine($"dto2: {dto2}"); // 1/1/2023 5:00:00 PM +05:00
Console.WriteLine($"Equals(): {dto1.Equals(dto2)}"); // True (UTC সমান)
Console.WriteLine($"EqualsExact(): {dto1.EqualsExact(dto2)}"); // False (অফসেট ভিন্ন)
}
}
আউটপুট
dto1: 1/1/2023 12:00:00 PM +00:00 dto2: 1/1/2023 5:00:00 PM +05:00 Equals(): True EqualsExact(): False
কখন কোনটি ব্যবহার করবেন?
- Equals() - যখন আপনাকে "একই মুহূর্ত" যাচাই করতে হয় (টাইমজোন বাদ দিয়ে)
- EqualsExact() - যখন আপনাকে "একই লোকাল টাইম এবং একই টাইমজোন" যাচাই করতে হয় (লগিং, অডিট, শিডিউলিং)
অন্যান্য সমানতা মেথড
Equals(DateTimeOffset)- ইনস্ট্যান্স মেথড (Equals()-এর মতো)Equals(Object)- অবজেক্ট পলিমরফিজম==/!=অপারেটর -Equals()-এর মতো আচরণ করে (UTC-ভিত্তিক)DateTimeOffset.Equals(dto1, dto2)- স্ট্যাটিক মেথড (null-সেফ)