交叉引用多个条目的日期范围

时间:2011-06-04 17:48:39

标签: php mysql codeigniter date

我正在使用Codeigniter构建应用并遇到以下问题:

该应用程序允许用户输入多个日期范围,每个日期范围具有开始和结束日期,即06-10-2011至06-14-2011。

我想交叉引用这些日期范围,以查找至少两个用户存在的日期范围。问题是他们不需要严格的开始或结束日期。

基本上,如果每个用户输入的日期范围类似于:

user1:06/10/2011 - 06/15/2011 user2:06/11/2011 - 06/14/2011 user3:06/12/2011 - 06/16/2011

然后结果将是:

common:06/12/2011 - 06/14/2011

任何帮助都会很棒!附:我正在使用Codeigniter和OverZealous Datamapper。

1 个答案:

答案 0 :(得分:0)

当我们可以假设您没有引用 long 范围时,您可以计算每个范围的天数,并使用日期作为哈希表的键。该哈希表存储用户的哈希集(或者如果您确定用户不能具有重叠范围的列表)。如果日期不在表中,则为该日期创建一个新集,并插入(追加)与当前时间范围关联的用户。如果日期在表中,只需插入(追加)用户...

在处理完所有范围后,检查表的内容并将您的用户总数与hashset(或列表)的长度进行比较