C#二个跨天时间段重叠的判断逻辑
时间: 2024-10-22 11:05:17 浏览: 24
单个项目代码,入门逻辑判断必知必会!
在C#中,如果你需要判断两个跨天的时间段是否重叠,你可以创建一个`DateTimeRange`类,包含开始时间和结束时间属性,然后编写一个函数来进行比较。以下是一个简单的示例:
```csharp
class DateTimeRange
{
public DateTime Start { get; set; }
public DateTime End { get; set; }
// 构造函数
public DateTimeRange(DateTime start, DateTime end)
{
if (end < start) throw new ArgumentException("End time must be after start time.");
Start = start;
End = end;
}
// 判断另一个区间是否与本区间重叠
public bool Overlaps(DateTimeRange other)
{
return !((other.Start > this.End) || (this.Start > other.End));
}
}
// 使用示例
public static void Main(string[] args)
{
DateTimeRange range1 = new DateTimeRange(DateTime.Today.AddDays(-1), DateTime.Today);
DateTimeRange range2 = new DateTimeRange(DateTime.Today.AddDays(1), DateTime.Today.AddDays(2));
if (range1.Overlaps(range2))
{
Console.WriteLine("The two date ranges overlap.");
}
else
{
Console.WriteLine("The two date ranges do not overlap.");
}
}
```
在这个例子中,`Overlaps`函数会检查第二个范围的开始时间是否大于第一个范围的结束时间,或者反之,如果两者都不满足,则说明它们有重叠。
阅读全文