Udostępnij za pośrednictwem


TimeZoneInfo.AdjustmentRule.Equals Metoda

Definicja

Przeciążenia

Equals(Object)

Wskazuje, czy bieżące wystąpienie jest równe innemu wystąpieniu.

Equals(TimeZoneInfo+AdjustmentRule)

Określa, czy bieżący TimeZoneInfo.AdjustmentRule obiekt jest równy drugiemu obiektowi TimeZoneInfo.AdjustmentRule .

Equals(Object)

Wskazuje, czy bieżące wystąpienie jest równe innemu wystąpieniu.

public:
 override bool Equals(System::Object ^ obj);
public override bool Equals (object? obj);
override this.Equals : obj -> bool
Public Overrides Function Equals (obj As Object) As Boolean

Parametry

obj
Object

Wystąpienie do porównania z tym wystąpieniem.

Zwraca

Boolean

true jeśli bieżące wystąpienie jest równe innego wystąpienia; w przeciwnym razie , false.

Dotyczy

Equals(TimeZoneInfo+AdjustmentRule)

Określa, czy bieżący TimeZoneInfo.AdjustmentRule obiekt jest równy drugiemu obiektowi TimeZoneInfo.AdjustmentRule .

public:
 virtual bool Equals(TimeZoneInfo::AdjustmentRule ^ other);
public bool Equals (TimeZoneInfo.AdjustmentRule? other);
public bool Equals (TimeZoneInfo.AdjustmentRule other);
override this.Equals : TimeZoneInfo.AdjustmentRule -> bool
Public Function Equals (other As TimeZoneInfo.AdjustmentRule) As Boolean

Parametry

other
TimeZoneInfo.AdjustmentRule

Obiekt do porównania z bieżącym obiektem.

Zwraca

Boolean

true jeśli oba TimeZoneInfo.AdjustmentRule obiekty mają równe wartości; w przeciwnym razie false.

Implementuje

Przykłady

Poniższy przykład wywołuje metodę TimeZoneInfo.AdjustmentRule.Equals(TimeZoneInfo+AdjustmentRule) w celu porównania reguł korekty dla czasu centralnego (standardowego) z regułami dotyczącymi czasu centralnego (czas standardowy) i Meksyku (czas standardowy).

   string timeZoneName = "";
   // Get CST, Canadian CST, and Mexican CST adjustment rules
   TimeZoneInfo.AdjustmentRule[] usCstAdjustments = null;
   TimeZoneInfo.AdjustmentRule[] canCstAdjustments = null;
   TimeZoneInfo.AdjustmentRule[] mexCstAdjustments = null;
   try
   {
      timeZoneName = "Central Standard Time";
      usCstAdjustments = TimeZoneInfo.FindSystemTimeZoneById(timeZoneName).GetAdjustmentRules();
   }
   catch (TimeZoneNotFoundException)
   {
      Console.WriteLine("The {0} time zone is not defined in the registry.", 
                        timeZoneName);
   }                           
   catch (InvalidTimeZoneException)
   {
      Console.WriteLine("Data for the {0} time zone is invalid.", 
                        timeZoneName);
   }
   try
   {
      timeZoneName = "Canada Central Standard Time";
      canCstAdjustments = TimeZoneInfo.FindSystemTimeZoneById(timeZoneName).GetAdjustmentRules();
   }
   catch (TimeZoneNotFoundException)
   {
      Console.WriteLine("The {0} time zone is not defined in the registry.", 
                        timeZoneName);
   }                           
   catch (InvalidTimeZoneException)
   {
      Console.WriteLine("Data for the {0} time zone is invalid.", 
                        timeZoneName);
   }
   try
   {
      timeZoneName = "Central Standard Time (Mexico)";
      mexCstAdjustments = TimeZoneInfo.FindSystemTimeZoneById(timeZoneName).GetAdjustmentRules();
   }   
   catch (TimeZoneNotFoundException)
   {
      Console.WriteLine("The {0} time zone is not defined in the registry.", 
                        timeZoneName);
   }                           
   catch (InvalidTimeZoneException)
   {
      Console.WriteLine("Data for the {0} time zone is invalid.", 
                        timeZoneName);
   }
   // Determine if CST and other time zones have the same rules
   foreach(TimeZoneInfo.AdjustmentRule rule in usCstAdjustments)
   {
      Console.WriteLine("Comparing Central Standard Time rule for {0:d} to {1:d} with:", 
                        rule.DateStart, rule.DateEnd);
      // Compare with Canada Central Standard Time
      if (canCstAdjustments.Length == 0)
      {
         Console.WriteLine("   Canada Central Standard Time has no adjustment rules.");
      }   
      else
      {
         foreach (TimeZoneInfo.AdjustmentRule canRule in canCstAdjustments)
         {
            Console.WriteLine("   Canadian CST for {0:d} to {1:d}: {2}", 
                              canRule.DateStart, canRule.DateEnd, 
                              rule.Equals(canRule) ? "Equal" : "Not Equal");
         }              
      }          

      // Compare with Mexico Central Standard Time
      if (mexCstAdjustments.Length == 0)
      {
         Console.WriteLine("   Mexican Central Standard Time has no adjustment rules.");
      }
      else
      {
         foreach (TimeZoneInfo.AdjustmentRule mexRule in mexCstAdjustments)
         {
            Console.WriteLine("   Mexican CST for {0:d} to {1:d}: {2}", 
                              mexRule.DateStart, mexRule.DateEnd, 
                              rule.Equals(mexRule) ? "Equal" : "Not Equal");
         }              
      }
   }   
   // This code displays the following output to the console:
   // 
   // Comparing Central Standard Time rule for 1/1/0001 to 12/31/9999 with:
   //    Canada Central Standard Time has no adjustment rules.
   //    Mexican CST for 1/1/0001 to 12/31/9999: Equal
// Get CST, Canadian CST, and Mexican CST adjustment rules
let usCstAdjustments =
    let timeZoneName = "Central Standard Time"
    try
        TimeZoneInfo.FindSystemTimeZoneById(timeZoneName).GetAdjustmentRules()
    with
    | :? TimeZoneNotFoundException ->
        printfn $"The {timeZoneName} time zone is not defined in the registry."
        null
    | :? InvalidTimeZoneException ->
        printfn $"Data for the {timeZoneName} time zone is invalid."
        null
let canCstAdjustments = 
    let timeZoneName = "Canada Central Standard Time"
    try
        TimeZoneInfo.FindSystemTimeZoneById(timeZoneName).GetAdjustmentRules()
    with
    | :? TimeZoneNotFoundException ->
        printfn $"The {timeZoneName} time zone is not defined in the registry."
        null
    | :? InvalidTimeZoneException ->
        printfn $"Data for the {timeZoneName} time zone is invalid."
        null
let mexCstAdjustments = 
    let timeZoneName = "Central Standard Time (Mexico)"
    try
        TimeZoneInfo.FindSystemTimeZoneById(timeZoneName).GetAdjustmentRules()
    with
    | :? TimeZoneNotFoundException ->
        printfn $"The {timeZoneName} time zone is not defined in the registry."
        null
    | :? InvalidTimeZoneException ->
        printfn $"Data for the {timeZoneName} time zone is invalid."
        null
// Determine if CST and other time zones have the same rules
for rule in usCstAdjustments do
    printfn $"Comparing Central Standard Time rule for {rule.DateStart:d} to {rule.DateEnd:d} with:"
    // Compare with Canada Central Standard Time
    if canCstAdjustments.Length = 0 then
        printfn "   Canada Central Standard Time has no adjustment rules."
    else
        for canRule in canCstAdjustments do
            printfn $"""   Canadian CST for {canRule.DateStart:d} to {canRule.DateEnd:d}: {if rule.Equals canRule then "Equal" else "Not Equal"}"""

    // Compare with Mexico Central Standard Time
    if mexCstAdjustments.Length = 0 then
        printfn "   Mexican Central Standard Time has no adjustment rules."
    else
        for mexRule in mexCstAdjustments do
            printfn $"""   Mexican CST for {mexRule.DateStart:d} to {mexRule.DateEnd:d}: {if rule.Equals mexRule then "Equal" else "Not Equal"}"""
// This code displays the following output to the console:
// 
// Comparing Central Standard Time rule for 1/1/0001 to 12/31/9999 with:
//    Canada Central Standard Time has no adjustment rules.
//    Mexican CST for 1/1/0001 to 12/31/9999: Equal
   Dim timeZoneName As String = String.Empty
   ' Get CST, Canadian CST, and Mexican CST adjustment rules
   Dim usCstAdjustments(), canCstAdjustments(), mexCstAdjustments() As TimeZoneInfo.AdjustmentRule
   Try
      timeZoneName = "Central Standard Time"
      usCstAdjustments = TimeZoneInfo.FindSystemTimeZoneById(timeZoneName).GetAdjustmentRules
   Catch e As TimeZoneNotFoundException
      Console.WriteLine("The {0} time zone is not defined in the registry.", timeZoneName)
   Catch e As InvalidTimeZoneException
      Console.WriteLine("Data for the {0} time zone is invalid.", timeZoneName)
   End Try
   Try
      timeZoneName = "Canada Central Standard Time"
      canCstAdjustments = TimeZoneInfo.FindSystemTimeZoneById(timeZoneName).GetAdjustmentRules
   Catch e As TimeZoneNotFoundException
      Console.WriteLine("The {0} time zone is not defined in the registry.", timeZoneName)
   Catch e As InvalidTimeZoneException
      Console.WriteLine("Data for the {0} time zone is invalid.", timeZoneName)
   End Try
   Try
      timeZoneName = "Central Standard Time (Mexico)"
      mexCstAdjustments = TimeZoneInfo.FindSystemTimeZoneById(timeZoneName).GetAdjustmentRules
   Catch e As TimeZoneNotFoundException
      Console.WriteLine("The {0} time zone is not defined in the registry.", timeZoneName)
   Catch e As InvalidTimeZoneException
      Console.WriteLine("Data for the {0} time zone is invalid.", timeZoneName)
   End Try
   ' Determine if CST and other time zones have the same rules
   For Each rule As TimeZoneInfo.AdjustmentRule In usCstAdjustments
      Console.WriteLine("Comparing Central Standard Time rule for {0:d} to {1:d} with:", _
                        rule.DateStart, rule.DateEnd)
      ' Compare with Canada Central Standard Time
      If canCstAdjustments.Length = 0 Then
         Console.WriteLine("   Canada Central Standard Time has no adjustment rules.")
      Else
         For Each canRule As TimeZoneInfo.AdjustmentRule In canCstAdjustments
            Console.WriteLine("   Canadian CST for {0:d} to {1:d}: {2}", _
                              canRule.DateStart, canRule.DateEnd, _
                              IIf(rule.Equals(canRule), "Equal", "Not Equal"))
         Next              
      End If          

      ' Compare with Mexico Central Standard Time
      If mexCstAdjustments.Length = 0 Then
         Console.WriteLine("   Mexican Central Standard Time has no adjustment rules.")
      Else
         For Each mexRule As TimeZoneInfo.AdjustmentRule In mexCstAdjustments
            Console.WriteLine("   Mexican CST for {0:d} to {1:d}: {2}", _
                              mexRule.DateStart, mexRule.DateEnd, _
                              IIf(rule.Equals(mexRule), "Equal", "Not Equal"))
         Next              
      End If
   Next   
   ' This code displays the following output to the console:
   ' 
   ' Comparing Central Standard Time rule for 1/1/0001 to 12/31/9999 with:
   '    Canada Central Standard Time has no adjustment rules.
   '    Mexican CST for 1/1/0001 to 12/31/9999: Equal

Ten kod wyświetla następujące dane wyjściowe w konsoli:

Comparing Central Standard Time rule for 1/1/0001 to 12/31/9999 with:  
   Canada Central Standard Time has no adjustment rules.  
   Mexican CST for 1/1/0001 to 12/31/9999: Equal  

Uwagi

Aby określić, czy dwa TimeZoneInfo.AdjustmentRule obiekty są równe, Equals(TimeZoneInfo+AdjustmentRule) metoda porównuje wartości składowe każdego obiektu. Dwie reguły korekty są równe, jeśli mają te same daty obowiązujące, te same różnice i identyczne wartości dla TimeZoneInfo.TransitionTime obiektów zwracanych przez ich DaylightTransitionStart właściwości i DaylightTransitionEnd .

Dotyczy