C# 包括从今天起使用DateTime的日期。现在

C# 包括从今天起使用DateTime的日期。现在,c#,datetime,C#,Datetime,我有以下代码: public void SetPublisherDatesNotAvailable(string strPublisher, DateTime[]listDatesNotAvailable) { if (_PublisherData.PublisherDictionary.ContainsKey(strPublisher)) { Publisher pPublisher = _PublisherData.PublisherDictionary[st

我有以下代码:

public void SetPublisherDatesNotAvailable(string strPublisher, DateTime[]listDatesNotAvailable)
{
    if (_PublisherData.PublisherDictionary.ContainsKey(strPublisher))
    {
        Publisher pPublisher = _PublisherData.PublisherDictionary[strPublisher];
        pPublisher.Availability.DatesNotAvailable =
            new List<DateTime>(listDatesNotAvailable.Where(d => d >= DateTime.Now)); // Ignore past dates

        _PublisherData.PublisherDictionary[strPublisher] = pPublisher;
    }
}
public void SetPublisherDatesNotAvailable(字符串strPublisher,DateTime[]listDatesNotAvailable)
{
if(_PublisherData.PublisherDictionary.ContainsKey(strPublisher))
{
Publisher-pppublisher=_PublisherData.PublisherDictionary[strPublisher];
pppublisher.Availability.DatesNotAvailable=
新列表(listDatesNotAvailable.Where(d=>d>=DateTime.Now));//忽略过去的日期
_PublisherData.PublisherDictionary[strPublisher]=ppPublisher;
}
}
但它没有包括任何带有今天日期的条目。它似乎也考虑了时间戳?这就可以解释了。但我只想排除它,如果它是昨天的日期

我该如何解决这个问题


谢谢。

您可以使用
DateTime.Now.Date
获取不含时间成分的值,或者更准确地说,将时间成分设置为午夜。

正如您在问题中提到的,
d
DateTime。现在
也将使用时间戳,如果要排除时间戳,则意味着您必须使用
d.Date
DateTime.Today
(这将给出今天的日期,而不带时间戳,并且等于
DateTime.Now.Date
,因此这一行
listDatesNotAvailable。其中(d=>d>=DateTime.Now)
应该是这样的:

listDatesNotAvailable.Where(d => d.Date >= DateTime.Today)

使用DateTime.Now.DateI返回午夜我学到了一些东西!我正要建议构造一个时间组件设置为0的新日期。我不知道日期属性。@adv12这就是为什么我对否决票有点失望的原因。也许我的问题对他们来说太简单了。不用担心。非常感谢您的帮助。我在那件事上我被困了好长时间!哇,我今天学到了两件方便的事情!DateTime。今天和DateTime。Now。Date。太棒了!我想这可能是更好的方法。