anchor.diff:    LSegment: TYearSegment;
   begin
     if TryFindSegment(AYear, lttDaylight, false, LSegment) then
  -    Result := LSegment.FStartsAt
  +    Result := LSegment.StartsAt
     else
       Result := 0;
   end;
  
positive.code:   TCompiledPeriod = class
    private
      FPeriod: PPeriod;
      FFrom, FUntil: TDateTime;
  
      function GetLastRuleForYear(const AYear: Word): PRule;
    public
      { Basic stuffs }
      constructor Create(const APeriod: PPeriod; const AFrom, AUntil: TDateTime);
  
      function CompileRulesForYear(const AYear: Word): TCompiledRuleArray;
    end;
  
negative.code:   ///  bundled for the given time zone.</summary>
    EUnknownTimeZoneYear = class(Exception);
  
    ///  Special type used to manipulate TDateTime in millisecond precision.
    ///  This is an internal type.
    TPreciseTime = type Int64;
  
    /// <summary>Represents a specific date/time segment of the year.</summary>
    /// <remarks>A calendar year in most time zones is divided into standard/ambiguous/daylight/invalid/standard segments.</remarks>
    TYearSegment = record
    private
      FStartsAt, FEndsAt: TPreciseTime;
      FType: TLocalTimeType;
      FName: string;
      FPeriodOffset, FBias: Int64;
  
      function GetUtcOffset: {$IFDEF DELPHI}TTimeSpan{$ELSE}Int64{$ENDIF}; inline;
      function GetStartsAt: TDateTime; inline;
      function GetEndsAt: TDateTime; inline;
    public
      /// <summary>The date/time when the segment starts.</summary>
      /// <returns>A date/time value representing the start of the segment.</returns>
      property StartsAt: TDateTime read GetStartsAt;
  
      /// <summary>The date/time when the segment ends.</summary>
      /// <returns>A date/time value representing the end of the segment.</returns>
      property EndsAt: TDateTime read GetEndsAt;
  
      /// <summary>The type of the segment.</summary>
      /// <returns>An enum value representing the type of the segment.</returns>
  