【问题标题】:How to compare 2 DateTime instances in C#?如何在 C# 中比较 2 个 DateTime 实例?
【发布时间】:2025-12-23 09:40:06
【问题描述】:

帮助! 谁知道如何比较 DateTime 对象。例如:

    Dictionary<DateTime, Person> _birthdays;

然后我将一堆元素添加到列表中,并想找到一个日期为 13. March 1995 的人。

   if(_birthdays.Keys.Contains(new DateTime(13,3,1995))

blah blah ...当然它总是返回false,因为它是一个全新的DateTime实例,它可能有小时、秒等......我只想比较YEAR MONTH DAYyyy!请帮忙,它会让我的代码更简单!

【问题讨论】:

  • 你能转换成字符串(用你想要的格式)然后比较这些字符串吗?
  • 为什么字典中的键有小时、秒等?他们应该吗?如果您知道此人在字典中,则应使用 var person = _birthdays[someDateTime.Date];。否则使用TryGetValue 来查看密钥是否存在。一个问题:为什么每个生日总是只有一个人。两个人不能同一天出生吗?
  • 是的,但我不是在做那个项目,这是另外一回事,我只是拿它作为例子 XD 但无论如何还是非常感谢

标签: datetime compare


【解决方案1】:

Date 结构有一个Date 成员,它只提供日期。

var targetDate = new DateTime(13,3,1995);

if (_birthdays.Keys.Any(b => b.Date == targetDate))
....

【讨论】: