Condividi tramite


TimeZoneInfo.AdjustmentRule.Equals Metodo

Definizione

Overload

Equals(Object)

Indica se l'istanza corrente è uguale a un'altra istanza.

Equals(TimeZoneInfo+AdjustmentRule)

Determina se l'oggetto TimeZoneInfo.AdjustmentRule corrente è uguale a un secondo oggetto TimeZoneInfo.AdjustmentRule.

Equals(Object)

Indica se l'istanza corrente è uguale a un'altra istanza.

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

Parametri

obj
Object

Istanza da confrontare con questa istanza.

Restituisce

Boolean

true se l'istanza corrente è uguale all'altra istanza; in caso contrario, false.

Si applica a

Equals(TimeZoneInfo+AdjustmentRule)

Determina se l'oggetto TimeZoneInfo.AdjustmentRule corrente è uguale a un secondo oggetto 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

Parametri

other
TimeZoneInfo.AdjustmentRule

Oggetto da confrontare con l'oggetto corrente.

Restituisce

Boolean

true se entrambi gli oggetti TimeZoneInfo.AdjustmentRule hanno valori uguali. In caso contrario, false.

Implementazioni

Esempio

Nell'esempio seguente viene chiamato il metodo per confrontare le regole di regolazione per l'ora TimeZoneInfo.AdjustmentRule.Equals(TimeZoneInfo+AdjustmentRule) standard centrale con quelle per l'ora standard del Canada centrale e del Messico.

   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

Questo codice visualizza l'output seguente nella 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  

Commenti

Per determinare se due TimeZoneInfo.AdjustmentRule oggetti sono uguali, il Equals(TimeZoneInfo+AdjustmentRule) metodo confronta i valori membro di ogni oggetto. Due regole di regolazione sono uguali se hanno le stesse date effettive, lo stesso delta e valori identici per gli TimeZoneInfo.TransitionTime oggetti restituiti dalle relative DaylightTransitionStart proprietà e DaylightTransitionEnd .

Si applica a