-1

我在 TextBox 中有两个 DatePicker。我想打印文本框范围之间的所有日期。如何在数据库中插入这些多个日期...?

例子:

在第一个文本框中:- 2013 年 7 月 1 日

第二个文本框:- 2013 年 12 月 31 日

输出应该像这样:

2013 年 7 月 1 日

2013 年 7 月 2 日

2013 年 7 月 3 日

2013 年 7 月 4 日

|

|

|

2013 年 12 月 30 日

2013 年 12 月 31 日

4

6 回答 6

4
 private List<DateTime> GetRange()
 {
    var res = new List<DateTime>();
    var start = DateTime.Parse(textBox1.Text);
    var end = DateTime.Parse(textBox2.Text);
    for (var date = start; date <= end; date = date.AddDays(1))
         res.Add(date);

    return res;
 }
于 2013-09-17T16:30:23.570 回答
2

首先,将两个输入都转换为日期对象。你可以用DateTime.Parse()这个。

DateTime start = DateTime.Parse("1 July 2013");
DateTime end = DateTime.Parse("31 December 2013");

然后简单地循环到最后。

while(start <= end)
{
   // Output or save to DB etc
   Console.WriteLine(start.ToString("d MMMMM yyyy"));
   start = start.AddDays(1);
}
于 2013-09-17T16:22:37.720 回答
0

使用 Linq:

var date1 = DateTime.Now.AddMonths(-1);
var date2 = DateTime.Now;

var dates = Enumerable
    .Range(1, (int)(date2 - date1).TotalDays)
    .Select(d => date1.AddDays(d).Date);

并将结果转储到字符串:

var output = string.Join(Environment.NewLine, dates);
于 2013-09-17T16:25:12.303 回答
0

你为什么想做这个?

您当然可以这样做,具体取决于数据库中 varchar(max) 字段的粒度,并将字符串设置为:

string result = "";
for(int x = 0; x< (endDate - startDate).TotalDays; x++) 
{
   result += startDate.AddDays(x).ToDateString();
}

我无法理解你为什么想要这个的原因。存储开始和结束日期,然后在需要时使用应用程序中的逻辑来计算信息,这似乎更有意义。

于 2013-09-17T16:23:32.617 回答
0
List<DateTime> allDates = new List<DateTime>();

    int starting = startingDate.Day;
int ending = endingDate.Day;

for (int i = starting; i <= ending; i++)
{
    allDates.Add(new DateTime(startingDate.Year, startingDate.Month, i));
}
于 2013-09-17T16:23:59.750 回答
0

谢谢大家的回复.....

但对我来说完美的答案是以上所有答案的组合......

DateTime dt = Convert.ToDateTime(TextBox1.Text);

        string result = "";

       for (int x = 0; x <= (Convert.ToDateTime(TextBox2.Text) - Convert.ToDateTime(TextBox1.Text)).TotalDays; x++)

        {

            result = dt.AddDays(x).ToString("d MMMMM yyyy");

            Response.Write("<br>" + result);

        }
于 2013-09-17T16:47:42.367 回答