比较两个 DateTime 值但只使用日期而不是时间

comparing two DateTime values but only using the day and not the time

我有一小段代码正在检查 DateTime 变量。

看起来像这样:

DateTime launchDay = DateTime.Today;
// launchTime.Begin is a DateTime? type
if (launchTime.Begin == null || launchTime.Begin > launchDay) return NoContent();

问题是,launchDay 是 'today',显然是午夜?

因此,如果我的 launchTime.Begin 是,假设是下午 2 点....那么它更大(在)'launchDay' 因为 'launchDay' 设置在上午 12 点。

我怎样才能比较日期,这样我就知道它们是在同一天,而不用太担心时间?

如果 launchTime.Begin 为空或 launchTime.Begin 与发布日不在同一天,我只希望它 return NoConent()。

有没有办法在不 运行 我遇到的问题的情况下做到这一点?

谢谢!

DateTime type 由两部分组成:日期部分和时间部分。当您只关心日期(而不关心时间)时,时间部分通常设置为默认值 0:00:00(即午夜)。

这在DateTime.Today上也有解释:

An object that is set to today's date, with the time component set to 00:00:00.

为了处理日期,忽略时间部分,您可以使用 Date property,它基本上会复制您的 DateTime 值,同时将时间部分设置为午夜。

这使您可以进行此类比较:

if (launchTime.Begin == null || launchTime.Begin.Date > DateTime.Today)
    return NoContent();