你是用程序拆呢,还是用SQL语句来拆?

解决方案 »

  1.   

    DateTime dt = new DateTime(nYear, nMonth, 1);
    dt = dt.AddDays(-1); //一个月的最后一天,就是下一个月的第一天减一2013-7-1就不用说了吧;
      

  2.   


    二楼的应该可以。构建下一个月第一天的DateTime对象,再减1天。
      

  3.   

    DateTime dtstatrt = new DateTime(2013,06,08);
    DateTime dtstatrtDay = dtstatrt.AddMonths(1);//月份加1
    //取出开始月最后一天
    DateTime dtstatrtEndDay = Convert.ToDateTime(dtstatrtDay.Year.ToString() + "-" + dtstatrtDay.Month.ToString() + "-" + "1").AddDays(-1);
    TimeSpan ts = dtstatrtEndDay - dtstatrt;
    var test = string.Empty;
    for(int i=1;i<ts.Days+1;i++)
    {
    test += dtstatrt.AddDays(i).ToShortDateString()+"\r\n";
    }
    MessageBox.Show(test);
    下面的一样。参考下吧。写的不好。
      

  4.   


    //赋值
    List<DateTime> lst = new List<DateTime>();
    lst.Add(new DateTime(2013, 9, 30, 00, 30, 00));
    lst.Add(new DateTime(2013, 10, 1, 00, 31, 01));
    lst.Add(new DateTime(2013, 10, 30, 00, 40, 01));//分段
    var query = from t in lst.AsEnumerable()
                group t by t.ToString("yyyyMMddHHmi").Substring(0, 6) into g
                select new
                {
                    _date = g.Key,
                    _lst = g.ToList<DateTime>()
                };
    //显示
    StringBuilder buider = new StringBuilder();
    foreach (var vq in query)
    {
        foreach (var item in vq._lst)
        {
            buider.Append(vq._date + " " + item + "\n");
        }
    }
    MessageBox.Show(buider.ToString());
      

  5.   

    string BeginDate = "2013-06-08";
                string EndDate = "2014-10-18";            if (Convert.ToDateTime(BeginDate) > Convert.ToDateTime(EndDate))
                {
                    MessageBox.Show("开始日期大于结束日期!!");
                    return;
                }
                
                if (BeginDate.Substring(0,7).Equals(EndDate.Substring(0,7)))
                {
                    textBox1.Clear();
                    textBox1.AppendText(BeginDate + " ~ " + EndDate);
                    return;
                }            textBox1.Clear();
                textBox1.AppendText(BeginDate + " ~ " + Convert.ToDateTime(BeginDate.Substring(0, 8) + "01").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd") + "\n");
                int i = 1;
                while (Convert.ToDateTime(BeginDate.Substring(0, 8) + "01").AddMonths(i) < Convert.ToDateTime(EndDate.Substring(0, 8) + "01"))
                {
                    textBox1.AppendText(Convert.ToDateTime(BeginDate.Substring(0, 8) + "01").AddMonths(i).ToString("yyyy-MM-dd") + " ~ " + Convert.ToDateTime(BeginDate.Substring(0, 8) + "01").AddMonths(i + 1).AddDays(-1).ToString("yyyy-MM-dd") + "\n");
                    i++;
                }
                textBox1.AppendText(Convert.ToDateTime(BeginDate.Substring(0, 8) + "01").AddMonths(i).ToString("yyyy-MM-dd") + " ~ " + EndDate + "\n");
      

  6.   

     BeginDate有可能是  "2013-6-8";
      

  7.   


    StringBuilder sbuider = new StringBuilder();DateTime dt1 = Convert.ToDateTime("2013-6-8");
    DateTime dt2 = Convert.ToDateTime("2013-10-02");
    int i = 0;
    for (; i < dt2.Month - dt1.Month; i++ )
    {
        string start = dt1.AddMonths(i).AddDays(-dt1.AddMonths(i).Day + 1).ToString();
        string end = dt1.AddMonths(i).AddMonths(1).AddDays(-dt1.AddMonths(i).Day).ToString();
        sbuider.Append(start + " " + end + "\n");
    }
    if (i != 0)
    {
        sbuider.Append(dt2.AddDays(-dt2.Day + 1).ToString() + " " + dt2.ToString());
    }MessageBox.Show(sbuider.ToString());
      

  8.   

    可以先格式化一下日期格式,将2013-6-8转换成2013-06-08。
    也就是:Convert.ToDateTime("2013-6-8").ToString("yyyy-MM-dd")
      

  9.   

                System.Text.StringBuilder sbuider = new System.Text.StringBuilder();            DateTime dt1 = Convert.ToDateTime("2013-6-8"); 
                DateTime dt2 = Convert.ToDateTime("2013-6-9"); 
                int ii = 0;
                string start = "", end = "";            for (; ii < dt2.Month - dt1.Month; ii++)
                {
                    if (dt1.AddMonths(ii).AddDays(-dt1.AddMonths(ii).Day + 1) < dt1)
                    {
                        start = dt1.ToString("yyyy-MM-dd");
                    }
                    else
                    {
                        start = dt1.AddMonths(ii).AddDays(-dt1.AddMonths(ii).Day + 1).ToString("yyyy-MM-dd");                 }
                    end = dt1.AddMonths(ii).AddMonths(1).AddDays(-dt1.AddMonths(ii).Day).ToString("yyyy-MM-dd");
                    sbuider.Append(start + " " + end + "\n");
                }
                if (ii != 0)
                {
                    sbuider.Append(dt2.AddDays(-dt2.Day + 1).ToString("yyyy-MM-dd") + " " + dt2.ToString("yyyy-MM-dd"));
                }
                else
                {
                    start = dt1.ToString("yyyy-MM-dd");
                    end = dt2.ToString("yyyy-MM-dd");                sbuider.Append(start + " " + end);            }
                    Response.Write(sbuider);以上可以实现时间段按月份进行拆分。如果我想用一个循环把时间段按月份拆分,该怎么处理