gpt4 book ai didi

c# - 重叠的多个日期范围比较 : how to do it efficiently?

转载 作者:太空狗 更新时间:2023-10-29 17:34:33 45 4
gpt4 key购买 nike

要检查两个不同日期范围的重叠,{Start1, End1}{Start2, End2} 我正在检查:

if ((Start1 <= End2) && (End1 >= Start2))
{
//overlap exists
}

问题是, 如果我有五个日期范围,比较重叠的好方法是什么?

检查它们是否相互重叠?

如果我有多个日期范围,如何查找这些范围是否重叠?

最佳答案

判断是否重叠

static bool Overlap(params Tuple<DateTime, DateTime>[] ranges)
{
for (int i = 0; i < ranges.Length; i++)
{
for (int j = i + 1; j < ranges.Length; j++)
{
if (!(ranges[i].Item1 <= ranges[j].Item2 && ranges[i].Item2 >= ranges[j].Item1))
return false;

}
}
return true;
}

查找是否有重叠

static bool Overlap(params Tuple<DateTime, DateTime>[] ranges)
{
for (int i = 0; i < ranges.Length; i++)
{
for (int j = i + 1; j < ranges.Length; j++)
{
if (ranges[i].Item1 <= ranges[j].Item2 && ranges[i].Item2 >= ranges[j].Item1)
return true;

}
}
return false;
}

关于c# - 重叠的多个日期范围比较 : how to do it efficiently?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4910617/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com