Itenso.TimePeriod.TimePeriodCollection.IntersectionPeriods C# (CSharp) Method

IntersectionPeriods() public method

public IntersectionPeriods ( System.DateTime test ) : ITimePeriodCollection
test System.DateTime
return ITimePeriodCollection
        public virtual ITimePeriodCollection IntersectionPeriods( DateTime test )
        {
            TimePeriodCollection intersectionPeriods = new TimePeriodCollection();

            foreach ( ITimePeriod period in periods )
            {
                if ( period.HasInside( test ) )
                {
                    intersectionPeriods.Add( period );
                }
            }

            return intersectionPeriods;
        }

Same methods

TimePeriodCollection::IntersectionPeriods ( ITimePeriod test ) : ITimePeriodCollection

Usage Example

コード例 #1
0
        public void IntersectionPeriodsTimePeriodTest()
        {
            DateTime now = ClockProxy.Clock.Now;
            TimeRange timeRange1 = new TimeRange( new DateTime( now.Year, now.Month, 8 ), new DateTime( now.Year, now.Month, 18 ) );
            TimeRange timeRange2 = new TimeRange( new DateTime( now.Year, now.Month, 10 ), new DateTime( now.Year, now.Month, 11 ) );
            TimeRange timeRange3 = new TimeRange( new DateTime( now.Year, now.Month, 13 ), new DateTime( now.Year, now.Month, 15 ) );
            TimeRange timeRange4 = new TimeRange( new DateTime( now.Year, now.Month, 9 ), new DateTime( now.Year, now.Month, 13 ) );
            TimeRange timeRange5 = new TimeRange( new DateTime( now.Year, now.Month, 15 ), new DateTime( now.Year, now.Month, 17 ) );

            TimePeriodCollection timePeriods = new TimePeriodCollection();
            timePeriods.Add( timeRange1 );
            timePeriods.Add( timeRange2 );
            timePeriods.Add( timeRange3 );
            timePeriods.Add( timeRange4 );
            timePeriods.Add( timeRange5 );

            Assert.AreEqual( timePeriods.IntersectionPeriods( timeRange1 ).Count, 5 );
            Assert.AreEqual( timePeriods.IntersectionPeriods( timeRange2 ).Count, 3 );
            Assert.AreEqual( timePeriods.IntersectionPeriods( timeRange3 ).Count, 4 );
            Assert.AreEqual( timePeriods.IntersectionPeriods( timeRange4 ).Count, 4 );
            Assert.AreEqual( timePeriods.IntersectionPeriods( timeRange5 ).Count, 3 );

            ITimeRange test1 = timeRange1.Copy( new TimeSpan( 100, 0, 0, 0 ).Negate() );
            ITimePeriodCollection insidePeriods1 = timePeriods.IntersectionPeriods( test1 );
            Assert.AreEqual( insidePeriods1.Count, 0 );

            ITimeRange test2 = timeRange1.Copy( new TimeSpan( 100, 0, 0, 0 ) );
            ITimePeriodCollection insidePeriods2 = timePeriods.IntersectionPeriods( test2 );
            Assert.AreEqual( insidePeriods2.Count, 0 );

            TimeRange test3 = new TimeRange( new DateTime( now.Year, now.Month, 9 ), new DateTime( now.Year, now.Month, 11 ) );
            ITimePeriodCollection insidePeriods3 = timePeriods.IntersectionPeriods( test3 );
            Assert.AreEqual( insidePeriods3.Count, 3 );

            TimeRange test4 = new TimeRange( new DateTime( now.Year, now.Month, 14 ), new DateTime( now.Year, now.Month, 17 ) );
            ITimePeriodCollection insidePeriods4 = timePeriods.IntersectionPeriods( test4 );
            Assert.AreEqual( insidePeriods4.Count, 3 );
        }
All Usage Examples Of Itenso.TimePeriod.TimePeriodCollection::IntersectionPeriods