本文整理汇总了C#中ITimePeriod.HasInside方法的典型用法代码示例。如果您正苦于以下问题:C# ITimePeriod.HasInside方法的具体用法?C# ITimePeriod.HasInside怎么用?C# ITimePeriod.HasInside使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITimePeriod
的用法示例。
在下文中一共展示了ITimePeriod.HasInside方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: HasInsidePeriods
/// <summary>
/// 대상 TimePeriod 를 포함하는 TimePeriod 요소가 존재하는가?
/// </summary>
/// <param name="target"></param>
/// <returns></returns>
public virtual bool HasInsidePeriods(ITimePeriod target) {
var result = _periods.Any(p => target.HasInside(p));
if(IsDebugEnabled)
log.Debug("target[{0}]을 포함하는 요소가 존재하는가? [{1}]", target, result);
return result;
}
示例2: InsidePeriods
/// <summary>
/// <paramref name="target"/> 기간을 포함하는 TimePeriod 들을 열거합니다.
/// </summary>
/// <param name="target"></param>
/// <returns></returns>
public virtual IEnumerable<ITimePeriod> InsidePeriods(ITimePeriod target) {
return _periods.Where(p => target.HasInside(p));
}
示例3: InsidePeriods
// ----------------------------------------------------------------------
public virtual ITimePeriodCollection InsidePeriods( ITimePeriod test )
{
if ( test == null )
{
throw new ArgumentNullException( "test" );
}
TimePeriodCollection insidePeriods = new TimePeriodCollection();
foreach ( ITimePeriod period in periods )
{
if ( test.HasInside( period ) )
{
insidePeriods.Add( period );
}
}
return insidePeriods;
}
示例4: FindLargestFreeTimeBlock
// ----------------------------------------------------------------------
public ICalendarTimeRange FindLargestFreeTimeBlock( IEnumerable<ITimePeriod> reservations,
ITimePeriod searchLimits = null, bool excludeWeekends = true)
{
TimePeriodCollection bookedPeriods = new TimePeriodCollection( reservations );
if ( searchLimits == null )
{
searchLimits = bookedPeriods; // use boundary of reservations
}
if ( excludeWeekends )
{
Week currentWeek = new Week( searchLimits.Start );
Week lastWeek = new Week( searchLimits.End );
do
{
ITimePeriodCollection days = currentWeek.GetDays();
foreach ( Day day in days )
{
if ( !searchLimits.HasInside( day ) )
{
continue; // outside of the search scope
}
if ( day.DayOfWeek == DayOfWeek.Saturday || day.DayOfWeek == DayOfWeek.Sunday )
{
bookedPeriods.Add( day ); // // exclude weekend day
}
}
currentWeek = currentWeek.GetNextWeek();
} while ( currentWeek.Start < lastWeek.Start );
}
// calculate the gaps using the time calendar as period mapper
TimeGapCalculator<TimeRange> gapCalculator = new TimeGapCalculator<TimeRange>( new TimeCalendar() );
ITimePeriodCollection freeTimes = gapCalculator.GetGaps( bookedPeriods, searchLimits );
if ( freeTimes.Count == 0 )
{
return null;
}
freeTimes.SortByDuration(); // move the largest gap to the start
return new CalendarTimeRange( freeTimes[ 0 ] );
}
示例5: HasInsidePeriods
// ----------------------------------------------------------------------
public virtual bool HasInsidePeriods( ITimePeriod test )
{
if ( test == null )
{
throw new ArgumentNullException( "test" );
}
foreach ( ITimePeriod period in periods )
{
if ( test.HasInside( period ) )
{
return true;
}
}
return false;
}