比如 输入 2010-01-01 至 2010-12-31
返回结果为
        2010-01-31
        2010-02-28
        2010-03-31
        2010-04-30
        2010-05-31
        2010-06-30
        2010-07-31
        2010-08-31
        2010-09-30
        2010-10-31
        2010-11-30
        2010-12-31

解决方案 »

  1.   

    同意1楼,用该月的下个月的第1天的日期AddDays(-1)
      

  2.   

    DateTime dt1 = new DateTime(2008, 1, 1);
                DateTime dt2 = new DateTime(2010, 12, 31);
                List<DateTime> dts = new List<DateTime>();
                DateTime dt = dt1;
                while ((dt = dt.AddMonths(1)) <= dt2) {
                    DateTime tmp = dt.AddMonths(1);
                    tmp = new DateTime(tmp.Year, tmp.Month, 1);
                    dts.Add(tmp.AddDays(-1));
                }
      

  3.   

    这样应该可以的,
                 string year = "2010";
                for (int i = 2; i <= 13; i++)
                {
                    if (i == 13)
                        Console.WriteLine((DateTime.Parse((Convert.ToInt32(year)+1).ToString() + "-" + 1.ToString() + "-1").AddDays(-1)).ToShortDateString());
                    else
                        Console.WriteLine((DateTime.Parse(year + "-" + i.ToString() + "-1").AddDays(-1)).ToShortDateString());
                }
    如果是多年的,那就再循环一下年就可以了,希望对你有帮助。