- 首先,通过比较第一个时间段的结束时间 firstEnd 和第二个时间段的起始时间 secondStart,以及第二个时间段的结束时间 secondEnd 和第一个时间段的起始时间 firstStart,来判断两个时间段是否有重叠部分。
- 如果第一个时间段的结束时间早于或等于第二个时间段的起始时间,或者第二个时间段的结束时间早于或等于第一个时间段的起始时间,那么两个时间段没有重叠部分,函数返回 false。
- 反之,如果两个时间段有任何重叠部分,函数返回 true。
封装方法: /// <summary> /// 重叠 /// </summary> /// <param name="firstStart"></param> /// <param name="firstEnd"></param> /// <param name="secondStart"></param> /// <param name="secondEnd"></param> /// <returns></returns> private bool CheckOverlap(DateTime firstStart, DateTime firstEnd, DateTime secondStart, DateTime secondEnd) { if (firstEnd <= secondStart || secondEnd <= firstStart) { return false; } else { return true; } } /// <summary> /// 重叠 /// </summary> /// <param name="firstStart"></param> /// <param name="firstEnd"></param> /// <param name="secondStart"></param> /// <param name="secondEnd"></param> /// <returns></returns> private bool CheckOverlap(int firstStart, int firstEnd, int secondStart, int secondEnd) { if (firstEnd <= secondStart || secondEnd <= firstStart) { return false; } else { return true; } }
C# 判断两个时间段是否重叠
2024-03-13 14:24:04 68 阅读