none
關於日期運算子的問題 RRS feed

  • 問題

  • // 計算差異天數  
                string startDate = firstdaytext.Text;
                string endDate = Lastdaytext.Text;
                DateTime dtStart = DateTime.ParseExact(startDate, "yyy/MM/dd", null);  //設yyy/MM/dd 為102/12/16
                DateTime dtEnd = DateTime.ParseExact(endDate, "yyy/MM/dd", null);      //設yyy/MM/dd 為102/12/21
                TimeSpan tsDay = dtEnd - dtStart;
                int dayCount = (int)tsDay.TotalDays;           
                textBox2.Text = dayCount.ToString();
    
                //抓時間區間內的資料到dataGridVeiw   
                string oldValue = startDate;
                day = Int32.Parse(startDate.Substring(7, 2));
                day1 = Int32.Parse(endDate.Substring(7, 2));
                for (int i = day ; i <= day1; i++)
                {
                    
                    firstdaytext.Text = firstdaytext.Text.Replace(firstdaytext.Text.Substring (7,2), i.ToString ()); // 日期
                    
               
                }

    我現在想抓取月份的資料,但是會遇到跨月份或跨年度的問題(例如102年11月30日跨到102年12月01日or 102年12月31日跨103年1月01日等)

    目前我只能取代日期,如11/01號取代到11/30日,但如果取代到11/30號,就必須跨越到12/01號

    請問我該在FOR迴圈裡如何更改??

    2013年12月31日 上午 08:44

解答

  • 您好,
    請參考一下,
    http://stackoverflow.com/questions/1847580/how-do-i-loop-through-a-date-range

    private void button3_Click(object sender, EventArgs e)
    {
    	DateTime dtStart = DateTime.ParseExact("102/12/16", "yyy/MM/dd", null);  //設yyy/MM/dd 為102/12/16
    	DateTime dtEnd = DateTime.ParseExact("103/01/03", "yyy/MM/dd", null);
    	foreach (DateTime day in EachDay(dtStart, dtEnd))
    	{
    		//listBox1.Items.Add(day.ToString("yyy/MM/dd"));
    	}
    }
    
    public IEnumerable<DateTime> EachDay(DateTime from, DateTime thru)
    {
    	for (var day = from.Date; day.Date <= thru.Date; day = day.AddDays(1))
    		yield return day;
    }

    or

    for (DateTime date = dtStart; date.Date <= dtEnd.Date; date = date.AddDays(1))
      {
                    //listBox1.Items.Add(date.ToString("yyy/MM/dd"));
      }


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/



    2013年12月31日 上午 09:47

所有回覆