我在TextBox中有两个DatePicker。我想打印textBox范围之间的所有日期。如何在数据库中插入这些多个日期......?
示例:
在First TextBox中: - 2013年7月1日
第二个TextBox: - 2013年12月31日
输出应该是:
2013年7月1日
2013年7月2日
2013年7月3日
2013年7月4日
|
|
|
2013年12月30日
2013年12月31日
答案 0 :(得分: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;
}
答案 1 :(得分: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);
}
答案 2 :(得分:0)
你为什么要这样做?
您当然可以这样做,具体取决于db中varchar(max)字段的粒度,并将字符串设置为:
string result = "";
for(int x = 0; x< (endDate - startDate).TotalDays; x++)
{
result += startDate.AddDays(x).ToDateString();
}
我无法理解为什么你会想要这个。存储开始日期和结束日期,然后在应用程序中使用逻辑来计算信息,并在需要时看起来更有意义。
答案 3 :(得分: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));
}
答案 4 :(得分: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);
答案 5 :(得分: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);
}