c#中如何获取两个日期之间的全部日期 例如有两个文本框 一个输入2009-01   一个输入2009-03   我要得到的结果是    2009-01 2009-02  2009-03   

解决方案 »

  1.   

    用个循环啊。
    DateTime beginDate=DateTime.Parse(txt1.Text.Trim());
    DateTime endDate=DateTime.Parse(txt2.Text.Trim())
    while(beginDate<endDate)
    {
    beginDate=beginDate.AddDays(1);
    .....
    }
      

  2.   

    for (DateTime dt = new DateTime(2009, 12, 4); dt < new DateTime(2010, 12, 1); dt=dt.AddMonths(1))
                {
                    Response.Write(dt.ToShortDateString());
                }
      

  3.   

    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 行受影响)
      

  4.   

    这个方法比较麻烦。
    Datatime有它自己定的方法可以比较两个日期。然后取值的部分代码就得你自己show了
      

  5.   

     private void NewMethod()
        {
            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");            }
            }       
           
        }这是我写的方法!!