首页 > 解决方案 > 如何确定多个(n)日期时间范围何时相互重叠

问题描述

我正在寻找一个可以调用的函数,它可以告诉我所有(p)人同时可用的日期时间范围。请帮助我了解 Objective-c 或 Swift 语言。

p1: start: "2016-01-01 12:00", end: "2016-05-01 03:00"
p2: start: "2016-01-01 03:00", end: "2016-05-01 03:00"
p3: start: "2016-01-01 03:00", end: "2016-04-30 13:31"

在上面的例子中,答案应该是:

start: 2016-04-30 12:00, end: 2016-04-30 13:31

标签: iosobjective-cswift

解决方案


将您的日期对转换为 NSDateInterval 对象并取它们的交集:

https://developer.apple.com/documentation/foundation/nsdateinterval/1641645-intersectionwithdateinterval

文档甚至提供了一个相当不错的图表:

在此处输入图像描述


推荐阅读