日期:2014-05-19  浏览次数:20888 次

如何生成时间区间?
现在有两个参数:2005/10/10,2006/02/15
我要生成几个时间区间,它能包含
2005/10/10----2005/10/31
2005/11/01-----2005/11/30
2005/12/01----2005/12/31
2006/01/01----2006/01/31
2006/02/01----2006/02/15
以便到数据库中搜索数据,应该如何迅速完成。我现在想用HashTable,key存前一个日期,value存后一个日期,
即处理完后要返回一个HashTable
不过具体如何实现呢?最好效率高点。

------解决方案--------------------
直接用sql语言搜索数据库又快又方便
------解决方案--------------------
DateTime start = DateTime.Parse( "2005/10/10 ");
DateTime end = DateTime.Parse( "2006/02/15 ");
Hashtable result = new Hashtable();
while (start < end)
{
string date = start.AddMonths(1).Year + "/ " + start.AddMonths(1).Month + "/1 ";
DateTime temp = DateTime.Parse(date);
if (temp > = end)
{
break;
}
else
{
result.Add(start, temp.AddDays(-1));
start = temp;
}
}
result.Add(start, end);
随便写一个
效率不会高
:)
------解决方案--------------------
如果你是用SQL Server数据库的话...

我有办法利用SQL语句生成每个月的头一天和最后一天....

这样子就可以不用多此一举的将日期区间保存在HashTable,直接就可以进行每个月的查询...
------解决方案--------------------
要的话就加复一下...
------解决方案--------------------
需求是什么?判断某个日期在两个日期之内?!!

那不直接:
if ( date < beginDate )
return false;
return date > endDate;