c# - 时间间隔重叠但在第二天
问题描述
我正在尝试构建一个函数来告诉我 2 个时间范围是否重叠。到目前为止,我发现的所有现有解决方案都是关于检测重叠但在同一天,这对我没有好处。
我认为这样的事情会起作用,但它不能处理所有情况:
var current = new Day()
{
Start = TimeSpan.Parse("23:00"),
End = TimeSpan.Parse("02:00")
};
var next = new Day()
{
Start = TimeSpan.Parse("22:45"),
End = TimeSpan.Parse("23:30")
};
current.End = (current.Start > current.End) ?
current.End.Add(new TimeSpan(24, 0, 0)) :
current.End;
next.End = (next.Start > next.End) ?
next.End.Add(new TimeSpan(24, 0, 0)) :
next.End;
bool overlap = (current.Start < next.End && next.Start < current.End);
Debug.WriteLine(overlap);
提供方案按预期工作,但如果我尝试以下操作,它不起作用:
var current = new Day()
{
Start = TimeSpan.Parse("23:00"),
End = TimeSpan.Parse("02:00")
};
var next = new Day()
{
Start = TimeSpan.Parse("01:00"),
End = TimeSpan.Parse("04:00")
};
关于我可以用来处理所有场景的任何建议。它需要处理重叠,但它还需要处理任何时候结束时间小于开始时间,它会假设它是在第二天,重叠计算应该考虑到这一点。
谢谢。
解决方案
推荐阅读
- java - Trying to make a program that adds all the digits in a number together and im struggling
- r - 从R中的tidygraph对象列表返回列表索引?
- amazon-web-services - Is there any easy way to recreate existing Amplify application as a different Amplify Application?
- reactjs - How can I change multiple Checkboxes in React Hook Form Via state
- c# - Why does my loop stop when a condition is met
- javascript - How to authorize amazon pay request to "get checkout session"?
- python - PyQt6:AttributeError Qt
- javascript - Google Picker API UI 未在 Chrome 中显示,在 Firefox 中不起作用
- java - 如何将 Spring Boot 与 Amazon Neptune 数据库一起使用?
- airflow - Apache Airflow 跨 dag 依赖