ASP.NET 编程

来源:百度知道 编辑:UC知道 时间:2024/05/25 20:02:23
private void BindVisitData(DateTime dDate)
{
IVisitor visit = new Visitor();
SqlDataReader dr = visit.GetVisitorsByMonth(dDate);
ArrayList statList = new ArrayList();
DateTime dt = dDate;
for (int i = 0; i < dt.AddMonths(1).Subtract(dDate).Days; i++)
{
VisitStat stat = new VisitStat();
stat.Name = dDate.Month.ToString() + "月" + (i + 1).ToString() + "日";
stat.Number = 0;
stat.Percent = 0;
statList.Add(stat);
}
while (dr.Read())
{
dt = DateTime.Parse(dr["VisitDate"].ToString());
((VisitStat)statList[dt.Day - 1]).Number++;
total++;
}
dr.Close();
if (total > 0)
{
dt = dDate;
for (int i = 0; i < dt.AddMonths(1)

第一问
for (int i = 0; i < dt.AddMonths(1).Subtract(dDate).Days; i++)
{
VisitStat stat = new VisitStat();
stat.Name = dDate.Month.ToString() + "月" + (i + 1).ToString() + "日";
stat.Number = 0;
stat.Percent = 0;
statList.Add(stat);
}
这个循环已经说明一切了.
先定义一个VisitStat类的对象,然后将这个对象的Name属性赋值为dDate.Month.ToString() + "月" + (i + 1).ToString() + "日";
Number,Percent两个属性赋值为0,然后将这个对象添加到statList中,statList相当于一个集合,用来放置新对象的.随着i的变化,将产生由日期控制的N多个对象,这些个对象都放在statList中了.
第二问
如果dt=2006-2-3则dt.AddMonths(1)则是2006-3-3,加了一个月,然后通过Subtract(dDate).Days计算出2006-2-3与2006-3-3差了多少天.6月只有30号,所以是30天.

不是你的考试题吧!!!