之间的时间是什么检查之间的任意2个日期等2个日期之间的任何相交,而不必检查每一秒在日期间,并检查是否二是在之间的有效途径另外两个日期?检查2个日期之间的时间相交其他2个日期
1
A
回答
1
假设你有: 时间t
和间隔[a-b] [c-d]
,如果他们进行排序,如:
- 一个< d
- 一个< b
- Ç< d
然后你可以检查t
是内部b和c,并且检查是否b> C,则整个事情是真的,否则 - 不。 作为一个快速的视线,我还没有想到更好的东西,然后全面检查他们是否没有排序。
1
你的问题可以改写这个样子。
检查两个日期c1和c2中的任何日期是否在两个日期d1和d2之间。
// assuming d1 is before d2
BOOL intersects =
([d1 compare:c1] == NSOrderedAscending &&
[d2 compare:c1] == NSOrderedDescending)
||
([d1 compare:c2] == NSOrderedAscending &&
[d2 compare:c2] == NSOrderedDescending)
|| [d1 compare:c1] == NSOrderedEqual
|| [d1 compare:c2] == NSOrderedEqual
|| [d2 compare:c1] == NSOrderedEqual
|| [d2 compare:c2] == NSOrderedEqual;
编辑:可替代地,
NSTimeInterval i = [d2 timeIntervalSinceDate:d1];
NSTimeInterval c1i = [c1 timeIntervalSinceDate:d1];
NSTimeInterval c2i = [c2 timeIntervalSinceDate:d1];
BOOL intersects = (c1i >= 0 && c1i <= i) || (c2i >= 0 && c2i <= i);
1
两个间隔[a, b]
和[c, d]
具有如果
a <= d && c <= b
因此
可以检查一个非空交集
[a compare:d] <= 0 && [c compare:b] <= 0
,看看间隔有任何共同的价值。
(这里我假设间隔有序,即a <= b
和c <= d
)
1
什么是检查是否随时随地日期间的2 交叉等之间的任意2个日期没有一种有效的方法必须检查日期之间的每个 秒,并检查第二个是否在 其他两个日期之间?
你这样做的另一种方式。第一个间隔何时与第二个间隔不相交?
- 当END1 < START2(第二开始之前所述第一时间间隔结束)
- 当START1> END2(第二已结束之后的第一时间间隔开始)。
所以,你要
End1 < Start2 OR Start1 > End2 // Condition of non-intersection
是假的:即你想
End1 >= Start2 AND Start1 <= End2 // Negation of above
为true。
相关问题
- 1. 在mongodb中查看其他2个日期之间的日期
- 2. 2个其他日期之间的日期,不考虑年份
- 3. 之间有2个日期
- 4. 检查日期是否在两个其他日期之间
- 5. 另外2个日期列之间的2个日期列
- 6. 日期时间在2个日期时间值之间的行SQL
- 7. c#比较日期时间和其他2日期
- 8. 2个时间戳之间的日期和时间差异?
- 9. 2个日期之间的MySQL搜索
- 10. 日期和时间之间的MySQL检查2列队
- 11. 2日期值之间的随机时间和日期
- 12. MySQL中的2个日期字段之间存在检查给定日期
- 13. PHP之间2日期
- 14. 分钟日期之间2
- 15. 获取vba中的2个日期之间的所有日期
- 16. 2日期之间的SQL SELECT查询
- 17. 查找2日期时间之间的时差,无视日期部分
- 18. 显示2个日期选择日期之间的天数?
- 19. 使用node.js获取2个日期之间的日期
- 20. 2个给定日期之间的打印日期
- 21. 检查输入的日期时间是否在2个日期时间值的范围之内
- 22. 小数格式的2个日期时间之间的差异
- 23. tsql intersect之间的2个日期时间记录集
- 24. 2。减去日期时间
- 25. 2日期时间C#
- 26. 使用JQuery/Javascript在2个日期之间获取日期的格式日期
- 27. TSQL更新的日期时间与随机值2个日期
- 28. 使用mysql查询其他日期之间的日期
- 29. 日期之间的日期与时间
- 30. 如何在2个日期和时间之间进行搜索?