예제 #1
0
        } // IntersectsWith

        // ----------------------------------------------------------------------
        public static bool OverlapsWith(TimeSlot period, TimeSlot test)
        {
            PeriodRelation relation = GetRelation(period, test);

            return
                (relation != PeriodRelation.After &&
                 relation != PeriodRelation.StartTouching &&
                 relation != PeriodRelation.EndTouching &&
                 relation != PeriodRelation.Before);
        } // OverlapsWith
예제 #2
0
        } // IntersectionPeriods

        // ----------------------------------------------------------------------
        public virtual ITimePeriodCollection RelationPeriods(ITimePeriod test, PeriodRelation relation)
        {
            if (test == null)
            {
                throw new ArgumentNullException("test");
            }

            TimePeriodCollection relationPeriods = new TimePeriodCollection();

            foreach (ITimePeriod period in periods)
            {
                if (test.GetRelation(period) == relation)
                {
                    relationPeriods.Add(period);
                }
            }

            return(relationPeriods);
        } // RelationPeriods
예제 #3
0
 /// <summary>
 /// 대상 TimePeriod 와 특정 관계를 가지는 TimePeriod 요소들을 열거합니다.
 /// </summary>
 /// <param name="target"></param>
 /// <param name="relation"></param>
 /// <returns></returns>
 public virtual IEnumerable <ITimePeriod> RelationPeriods(ITimePeriod target, PeriodRelation relation)
 {
     return(_periods.Where(p => target.GetReleation(p) == relation));
 }
예제 #4
0
 /// <summary>
 /// 대상 TimePeriod 와 특정 관계를 가지는 TimePeriod 요소들을 열거합니다.
 /// </summary>
 /// <param name="target"></param>
 /// <param name="relations"></param>
 /// <returns></returns>
 public virtual IEnumerable<ITimePeriod> RelationPeriods(ITimePeriod target, PeriodRelation[] relations) {
     return _periods.Where(p => relations.Contains(target.GetReleation(p)));
 }
예제 #5
0
 /// <summary>
 /// 대상 TimePeriod 와 특정 관계를 가지는 TimePeriod 요소들을 열거합니다.
 /// </summary>
 /// <param name="target"></param>
 /// <param name="relation"></param>
 /// <returns></returns>
 public virtual IEnumerable<ITimePeriod> RelationPeriods(ITimePeriod target, PeriodRelation relation) {
     return _periods.Where(p => target.GetReleation(p) == relation);
 }
예제 #6
0
        // ----------------------------------------------------------------------
        public virtual ITimePeriodCollection RelationPeriods( ITimePeriod test, PeriodRelation relation )
        {
            if ( test == null )
            {
                throw new ArgumentNullException( "test" );
            }

            TimePeriodCollection relationPeriods = new TimePeriodCollection();

            foreach ( ITimePeriod period in periods )
            {
                if ( test.GetRelation( period ) == relation )
                {
                    relationPeriods.Add( period );
                }
            }

            return relationPeriods;
        }