for (DateTime dt = new DateTime(2009, 12, 4); dt < new DateTime(2010, 12, 1); dt=dt.AddMonths(1)) { Response.Write(dt.ToShortDateString()); }
sql 的declare @t varchar(10),@s varchar(10) set @t='2009-01' set @s='2009-03'select result=convert(varchar(7),dif,120) from ( select dif=dateadd(month,number,convert(datetime,@t+'-01',120)) from master..spt_values where type='p' ) m where datediff(month,dif,convert(datetime,@s+'-01',120))>=0 result ------- 2009-01 2009-02 2009-03(3 行受影响)
DateTime beginDate=DateTime.Parse(txt1.Text.Trim());
DateTime endDate=DateTime.Parse(txt2.Text.Trim())
while(beginDate<endDate)
{
beginDate=beginDate.AddDays(1);
.....
}
{
Response.Write(dt.ToShortDateString());
}
set @t='2009-01'
set @s='2009-03'select result=convert(varchar(7),dif,120) from
(
select dif=dateadd(month,number,convert(datetime,@t+'-01',120)) from master..spt_values where type='p'
) m
where datediff(month,dif,convert(datetime,@s+'-01',120))>=0
result
-------
2009-01
2009-02
2009-03(3 行受影响)
Datatime有它自己定的方法可以比较两个日期。然后取值的部分代码就得你自己show了
{
DateTime beginDate = DateTime.Parse(this.TextBox1.Text.Trim());
DateTime endDate = DateTime.Parse(this.TextBox2.Text.Trim()); int beignyear = Convert .ToInt32( beginDate.Year);
int endyear = Convert.ToInt32(endDate.Year);
int bignmouth = Convert.ToInt32(beginDate.Month);
int endmouth =Convert.ToInt32( endDate.Month); for (int i = beignyear; i < endyear+1;i++ )
{
for (int j = bignmouth; j < endmouth+1;j++ )
{ string show = i + "-" + "0" + j + ""; Response.Write(show + "br"); }
}
}这是我写的方法!!