如何生成时间区间?

vfan2010 2007-05-10 06:05:45
现在有两个参数: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
不过具体如何实现呢?最好效率高点。
...全文
365 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
vfan2010 2007-05-12
  • 打赏
  • 举报
回复
再UP一下。
vfan2010 2007-05-10
  • 打赏
  • 举报
回复
对于每个时间区间我要去搜索一次数据库,得到数据后再显示在页面上。所以如果区间越多的,我的table(html)就会多一列出来。
Ivony 2007-05-10
  • 打赏
  • 举报
回复
还是取某个时间区段内所有日期?
Ivony 2007-05-10
  • 打赏
  • 举报
回复
date < beginDate && date < endDate
Ivony 2007-05-10
  • 打赏
  • 举报
回复
if ( date < beginDate )
return false;
return date < endDate;
Ivony 2007-05-10
  • 打赏
  • 举报
回复
需求是什么?判断某个日期在两个日期之内?!!

那不直接:
if ( date < beginDate )
return false;
return date > endDate;
vfan2010 2007-05-10
  • 打赏
  • 举报
回复
直接用sql语言搜索数据库又快又方便

----------------------------
你的方法我也想到过,只是觉得为了这个去找一下数据库有点麻烦,本来这个页面搜索数据库的次数就很多。
shinaterry 2007-05-10
  • 打赏
  • 举报
回复
要的话就加复一下...
shinaterry 2007-05-10
  • 打赏
  • 举报
回复
如果你是用SQL Server数据库的话...

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

这样子就可以不用多此一举的将日期区间保存在HashTable,直接就可以进行每个月的查询...
lovefootball 2007-05-10
  • 打赏
  • 举报
回复
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);
随便写一个
效率不会高
:)
winner2050 2007-05-10
  • 打赏
  • 举报
回复
直接用sql语言搜索数据库又快又方便
oliverkahn 2007-05-10
  • 打赏
  • 举报
回复
哈希表键值配对偶不会,正好学习,帮楼主顶。

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧