我正在使用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。
答案 0 :(得分:0)
当我们可以假设您没有引用 long 范围时,您可以计算每个范围的天数,并使用日期作为哈希表的键。该哈希表存储用户的哈希集(或者如果您确定用户不能具有重叠范围的列表)。如果日期不在表中,则为该日期创建一个新集,并插入(追加)与当前时间范围关联的用户。如果日期在表中,只需插入(追加)用户...
在处理完所有范围后,检查表的内容并将您的用户总数与hashset(或列表)的长度进行比较