TimePeriodLibrary相交两个时间段

时间:2018-03-07 09:48:38

标签: c# .net .net-core

过去几个小时我一直在与TimePeriodLibrary作战。我只是想比较两个时间段以确定它们的交集......

根据codeproject,似乎TimePeriodLibrary提供了这种功能。

在我的情况下,我使用下面非常简单的代码:

public ICollection<TimeRange> Extract(TimeRange range, TimeSpan? maxDuration = null)
{
    (...)
    var res = _source.IntersectionPeriods(range);
    (...)
}

source是TimePeriodCollection

类型的实例

何时:

  • _source是从6/3/2018 12:00:00 PM到6/3/2021 1:00:00 PM的时段
  • 范围是从30/3/2018 12:00:00 AM到31/3/2018 12:00:00 AM期间
  • 结果:交集包含_source
  • 中的所有内容
  • 预计:期间从30/3/2018 12:00:00 AM到31/3/2018 12:00:00

我错过了什么?

1 个答案:

答案 0 :(得分:0)

你的问题是:

  • _source是从6/3/2018 12:00:00 PM到6/3/2021 1:00:00 PM的时段
  • 范围是从30/3/2018 12:00:00 AM到 31/3/2018 12:00:00 AM
  • 结果:十字路口包含一切 来自_source
  • 预计:从30/3/2018 12:00:00 AM到 31/3/2018 12:00:00 AM

IntersectionPeriods所做的是返回_source中与提供的range相交的所有句点。您的范围from 30/3/2018 12:00:00 AM to 31/3/2018 12:00:00 AMfrom 6/3/2018 12:00:00 PM to 6/3/2021 1:00:00 PM相交,因此返回_source范围。因此,代码正在按预期工作。

看起来您正在尝试查找range是否以某种方式与_source相交,而不是_source中的哪些项目与range相交?