如果项目介于日期之间,我创建的程序将需要添加项目,这是我使用的代码:
if (day >= fromDay - 1 && day <= tillDay && month >= fromMonth - 1 && month <= tillMonth && year >= fromYear - 1 && year <= tillYear)
{
listBox1.Items.Add(OpenFiles[m_index].getFileName());
}
代码工作正常,但它有一个错误:它检查日,月和年是否在开始和结束之间。 所以即使你想在2011年2月19日至2011年4月15日期间添加一些东西,它也不会添加或看到任何东西。请帮帮我。
答案 0 :(得分:5)
您应该比较日期而不是日期的组成部分:
// Presumably you can determine these once... (possibly rename to earliestValid
// and latestValid, or something like that?)
DateTime from = new DateTime(fromYear, fromMonth, fromDay);
DateTime to = new DateTime(toYear, toMonth, toDay);
// Then for each candidate...
...
DateTime date = new Date(year, month, day);
if (date >= from && date <= to)
{
listBox1.Items.Add(...);
}
(当然,对于 date 类型而不是日期和时间,请查看Noda Time:)
答案 1 :(得分:0)
DateTime fromTime;
DateTime toTime;
DateTime currentTime = DateTime.Now;
if (currentTime >= fromTime && currentTime <= toTime)
{
//to do some stuff
}
答案 2 :(得分:0)
它将以这种方式工作:
var dateFrom = new DateTime(yearFrom, monthFrom, dayFrom);
var dateTo = new DateTime(yearTo, monthTo, dayTo);
var actualDate = new DateTime(year, month, day);
if ((dateFrom < actualDate) && (actualDate < dateTo))
{
// Do something
}
如果你单独比较日期的各个部分,它将无效(正如你已经发现的那样:-D)
答案 3 :(得分:0)
为什么不在from和toDate以及实际日期之外创建日期并执行此操作&gt;
if(fromDate < date && date <= tillDate)
{
}