【发布时间】:2018-08-19 10:57:32
【问题描述】:
这完全是一个简单或基本的要求。我正在尝试使用C# 从日期列表中获取日期。所以我所做的,创建了一个函数并使用for 循环对其进行迭代。我尝试将列表函数分为两个范围,并从DatePicker 控件传递值,如下所示:
private void btnClick_Click(object sender, EventArgs e)
{
DateTime theFromDate = dateTimePicker1.Value;
DateTime theToDate = dateTimePicker2.Value;
List<DateRange> lstRange = GetDateRange();
/**Trying To Get The Date From The Range - Starts**/
var dates = new List<DateTime>();
for (var dt = theFromDate; dt <= theToDate; dt = dt.AddDays(1))
{
dates.Add(dt);
//MessageBox.Show(dt.Date.ToString());
}
List<DateRange> lst = GetDateRange();
foreach(var item in lst)
{
if(theFromDate <= item.EndtDate.Date)
{
MessageBox.Show(theFromDate.ToString("dd-MMM-yyyy") + " in the date range!");
}
else
{
MessageBox.Show(theFromDate.ToString("dd-MMM-yyyy") + " not in the date range!");
}
}
/**Trying To Get The Date From The Range - Ends**/
}
public class DateRange
{
public DateTime date { set; get; }
public DateTime EndtDate { set; get; }
}
/**List of Dates Here - Starts**/
public List<DateRange> GetDateRange()
{
List<DateRange> lstDate = new List<DateRange>();
DateRange aDateRange = new DateRange();
aDateRange.StartDate = Convert.ToDateTime("10-Aug-2018");
aDateRange.EndtDate = Convert.ToDateTime("13-Aug-2018");
lstDate.Add(aDateRange);
return lstDate;
}
/**List of Dates Here - Ends**/
不幸的是,尽管列表具有特定日期,但它不会返回所需的输出。
更新 1:
预期输出 - FromDate 和 ToDate 值存储在列表中。
FromDate ToDate
10-AUG-2018 13-AUG-2018
**in the date range**
FromDate ToDate
13-AUG-2018 16-AUG-2018
**in the date range** //As 13 is the end date in the given list
FromDate ToDate
8-AUG-2018 10-AUG-2018
**in the date range** //As 10 is the start date in the given list
FromDate ToDate
8-AUG-2018 8-AUG-2018
**not in the date range** //As 10 is the start date in the given list
【问题讨论】:
-
您的代码令人困惑。尝试解释您想要实现的目标,添加示例输入和相应的期望输出。覆盖
aDateRange.date三遍的目的是什么,并且在将最后一个添加到列表之前使用常量?您的GetDateRange将返回DateRange的单个实例的相同列表。 -
请查看更新后的帖子@ZorgoZ。