TimeZoneInfo.AdjustmentRule.Equals(TimeZoneInfo+AdjustmentRule) Methode

Definitie

Bepaalt of het huidige TimeZoneInfo.AdjustmentRule object gelijk is aan een tweede TimeZoneInfo.AdjustmentRule object.

public:
 virtual 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

Parameters

other
TimeZoneInfo.AdjustmentRule

Het object dat moet worden vergeleken met het huidige object.

Retouren

true als beide TimeZoneInfo.AdjustmentRule objecten gelijke waarden hebben; falseanders.

Implementeringen

Voorbeelden

In het volgende voorbeeld wordt de TimeZoneInfo.AdjustmentRule.Equals(TimeZoneInfo+AdjustmentRule) methode aangeroepen om de aanpassingsregels voor Central Standard Time te vergelijken met die voor Canada Central Standard Time en Mexico Standard Time.

   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

Met deze code wordt de volgende uitvoer naar de console weergegeven:

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

Opmerkingen

Om te bepalen of twee TimeZoneInfo.AdjustmentRule objecten gelijk zijn, vergelijkt de Equals(TimeZoneInfo+AdjustmentRule) methode de lidwaarden van elk object. Twee aanpassingsregels zijn gelijk als ze dezelfde ingangsdatums, dezelfde delta en identieke waarden hebben voor de TimeZoneInfo.TransitionTime objecten die worden geretourneerd door hun DaylightTransitionStart en DaylightTransitionEnd eigenschappen.

Van toepassing op