} // 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
} // 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
/// <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)); }
/// <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))); }
/// <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); }
// ---------------------------------------------------------------------- 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; }