之間的時間是什麼檢查之間的任意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日期間
- 7. 檢查2個日期之間的差值不那麼2天
- 8. 日期時間在2個日期時間值之間的行SQL
- 9. c#比較日期時間和其他2日期
- 10. 2個時間戳之間的日期和時間差異?
- 11. 日期和時間之間的MySQL檢查2列隊
- 12. 2個日期之間的MySQL搜索
- 13. 2個日期之間的JavaScript倒數
- 14. 2日期值之間的隨機時間和日期
- 15. MySQL中的2個日期字段之間存在檢查給定日期
- 16. MySQL檢查當前日期時間是否在2個字段日期和時間之間
- 17. PHP之間2日期
- 18. 分鐘日期之間2
- 19. 獲取vba中的2個日期之間的所有日期
- 20. 2日期之間的SQL SELECT查詢
- 21. 查找2日期時間之間的時差,無視日期部分
- 22. 使用node.js獲取2個日期之間的日期
- 23. 2個給定日期之間的打印日期
- 24. 顯示2個日期選擇日期之間的天數?
- 25. 檢查輸入的日期時間是否在2個日期時間值的範圍之內
- 26. 小數格式的2個日期時間之間的差異
- 27. tsql intersect之間的2個日期時間記錄集
- 28. 2。減去日期時間
- 29. C#2日期時間不相等
- 30. 使用JQuery/Javascript在2個日期之間獲取日期的格式日期