在做web开发过程中,写了一个工具类,返回一段时间日期:
/**
*start_date是传入开始的日期,end_date是截至的日期,
*功能要返回开始日期到截至日期之间的所有日期对象
**/
public List<DateTime> get_WeekList(DateTime start_date, DateTime end_date)
{
List<DateTime> datelist = new List<DateTime>();
DateTime temp_date;
for (temp_date = start_date; temp_date.CompareTo(end_date) < 0; temp_date.AddDays(1))
{
datelist.Add(temp_date);
}
return datelist;
}
程序运行到datelist.Add(temp_date);的时候报出OutOfMemoryException!求高人指点如何解决!谢谢!
/**
*start_date是传入开始的日期,end_date是截至的日期,
*功能要返回开始日期到截至日期之间的所有日期对象
**/
public List<DateTime> get_WeekList(DateTime start_date, DateTime end_date)
{
List<DateTime> datelist = new List<DateTime>();
DateTime temp_date;
for (temp_date = start_date; temp_date.CompareTo(end_date) < 0; temp_date.AddDays(1))
{
datelist.Add(temp_date);
}
return datelist;
}
程序运行到datelist.Add(temp_date);的时候报出OutOfMemoryException!求高人指点如何解决!谢谢!
end_date 的值为2010-9-20 0:00:00这里不会出现死循环吧?
法一、使用TimeSpan ,同时也介绍一下TimeSpan的用法
相关属性和函数
Add:与另一个TimeSpan值相加。
Days:返回用天数计算的TimeSpan值。
Duration:获取TimeSpan的绝对值。
Hours:返回用小时计算的TimeSpan值
Milliseconds:返回用毫秒计算的TimeSpan值。
Minutes:返回用分钟计算的TimeSpan值。
Negate:返回当前实例的相反数。
Seconds:返回用秒计算的TimeSpan值。
Subtract:从中减去另一个TimeSpan值。
Ticks:返回TimeSpan值的tick数。
TotalDays:返回TimeSpan值表示的天数。
TotalHours:返回TimeSpan值表示的小时数。
TotalMilliseconds:返回TimeSpan值表示的毫秒数。
TotalMinutes:返回TimeSpan值表示的分钟数。
TotalSeconds:返回TimeSpan值表示的秒数。
简单示例:
DateTime d1 =new DateTime(2004,1,1,15,36,05);
DateTime d2 =new DateTime(2004,3,1,20,16,35);
TimeSpan d3 = d2.Subtract(d1);
LbTime.Text = "相差:"
+d3.Days.ToString()+"天"
+d3.Hours.ToString()+"小时"
+d3.Minutes.ToString()+"分钟"
+d3.Seconds.ToString()+"秒";
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wcmtu/archive/2009/01/03/3696622.aspx
改为
temp_date=temp_date.AddDays(1)