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

时间:2020-08-03 13:32:16

标签: c# asp.net-core asp.net-core-3.1 c#-8.0

我有这段简短的代码正在检查DateTime变量。

它看起来像这样:

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

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

因此,如果我的launchTime.Begin是2pm...。那么,在'launchDay'之后(由于'launchDay'设置为12AM),该值会更大。

如何比较日期,以便我知道它们在同一天,而不用担心太多时间?

如果launchTime.Begin为null或launchTime.Begin与launchDay不在同一天,我只希望它返回NoConent()。

有没有办法解决我遇到的问题?

谢谢!

1 个答案:

答案 0 :(得分:2)

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

这在DateTime.Today上也有解释:

设置为今天的日期,时间部分设置为00:00:00的对象。

要使用日期,而忽略时间成分,可以使用Date property,它基本上会在将时间成分设置为午夜时复制DateTime值。

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

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