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

C#-এ DateTimeOffset.EqualsExact() মেথড: সঠিক সমানতা যাচাই (টাইমজোন সহ)


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-সেফ)
  1. C#-এ DateTimeOffset.FromUnixTimeMilliseconds() পদ্ধতি

  2. C#-এ DateTimeOffset.FromFileTime() পদ্ধতি

  3. C#-এ DateTimeOffset.Compare() মেথড

  4. C#-এ DateTimeOffset.AddYears() মেথড