sam*_*_33 8 algorithm datetime compare
我今天接受了采访,并被要求检查两次会面是否相互冲突.每次会议都有开始时间和结束时间.我试图回答这个问题但不是那个具体的问题.有人可以提出一些想法吗?
bool IsConflict(Datetime s1, Datetime e1, Datetime s2, Datetime e2)
Run Code Online (Sandbox Code Playgroud)
如果存在冲突,则应返回true;如果没有冲突,则返回false.
例如
如果:
(s1,e1)= 8,10 则为真
(s2,e2)= 9,11
(s1,e1)= 7,10
(s2,e2)= 8,9
(s1,e1)= 8,11
(s2,e2)= 9,11等
ang*_*son 20
这是基本的区间代数,请参阅我的答案以获取更多详细信息,但代码如下所示:
bool IsConflict(Datetime s1, Datetime e1, Datetime s2, Datetime e2)
{
return (s1 < e2) && (e1 > s2);
}
Run Code Online (Sandbox Code Playgroud)
我假设两个会议开始,其中一个开始而另一个结束没有冲突.
在两个间隔的简单情况下,我认为这会起作用(前面未经测试的伪代码):
bool IsConflict(Datatime s1, Datatime e1, Datatime s2, Datatime e2) {
if( s1 < s2 ) {
// meeting 1 starts first
if( e1 > s2 ) return true; // overlap
}
else {
// meeting 2 starts first
if( e2 > s1 ) return true; // overlap
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12834 次 |
| 最近记录: |