@@ -117,7 +117,7 @@ public HashSet<DateTime> BankHolidays
117117 /// </summary>
118118 public static SecurityExchangeHours AlwaysOpen ( DateTimeZone timeZone )
119119 {
120- var dayOfWeeks = Enum . GetValues ( typeof ( DayOfWeek ) ) . OfType < DayOfWeek > ( ) ;
120+ var dayOfWeeks = Enum . GetValues ( typeof ( DayOfWeek ) ) . OfType < DayOfWeek > ( ) ;
121121 return new SecurityExchangeHours ( timeZone ,
122122 Enumerable . Empty < DateTime > ( ) ,
123123 dayOfWeeks . Select ( LocalMarketHours . OpenAllDay ) . ToDictionary ( x => x . DayOfWeek ) ,
@@ -282,7 +282,7 @@ public DateTime GetPreviousMarketOpen(DateTime localDateTime, bool extendedMarke
282282 for ( int i = 0 ; i < 7 ; i ++ )
283283 {
284284 DateTime ? potentialResult = null ;
285- foreach ( var segment in marketHours . Segments . Reverse ( ) )
285+ foreach ( var segment in marketHours . Segments . Reverse ( ) )
286286 {
287287 if ( ( time . Date + segment . Start <= localDateTime ) &&
288288 ( segment . State == MarketHoursState . Market || extendedMarketHours ) )
@@ -601,26 +601,16 @@ public LocalMarketHours GetMarketHours(DateTime localDateTime)
601601 // and add it before the segments previous to the lateOpenTime
602602 // Otherwise, just take the segments previous to the lateOpenTime
603603 List < MarketHoursSegment > segmentsLateOpen = null ;
604- var closeAllDay = false ;
605604 if ( hasLateOpen )
606605 {
607606 var index = 0 ;
608607 segmentsLateOpen = new List < MarketHoursSegment > ( ) ;
609- for ( var i = 0 ; i < marketHoursSegments . Count ; i ++ )
608+ for ( var i = 0 ; i < marketHoursSegments . Count ; i ++ )
610609 {
611610 var segment = marketHoursSegments [ i ] ;
612- // If we're at the last segment and it ends before the late open time, the market is closed all day
613- if ( segment . End < lateOpenTime && i == marketHoursSegments . Count - 1 )
614- {
615- closeAllDay = true ;
616- // Set index to the count to ensure TakeLast(0) later,
617- // meaning no segments will be included after this point.
618- index = marketHoursSegments . Count ;
619- break ;
620- }
621611 if ( segment . Start <= lateOpenTime && lateOpenTime <= segment . End )
622612 {
623- segmentsLateOpen . Add ( new ( segment . State , lateOpenTime , segment . End ) ) ;
613+ segmentsLateOpen . Add ( new ( segment . State , lateOpenTime , segment . End ) ) ;
624614 index = i + 1 ;
625615 break ;
626616 }
@@ -637,8 +627,7 @@ public LocalMarketHours GetMarketHours(DateTime localDateTime)
637627
638628 // Since it could be the case we have a late open after an early close (the market resumes after the early close), we need to take
639629 // the segments before the early close and the segments after the late open and append them to obtain the expected market hours
640- // unless market is closed all day
641- if ( segmentsEarlyClose != null && hasLateOpen && earlyCloseTime <= lateOpenTime && ! closeAllDay )
630+ if ( segmentsEarlyClose != null && hasLateOpen && earlyCloseTime <= lateOpenTime )
642631 {
643632 segmentsEarlyClose . AddRange ( segmentsLateOpen ) ;
644633 marketHoursSegments = segmentsEarlyClose ;
0 commit comments