C# 如果所需日期大于或小于当前日期,如何检查日期?

C# 如果所需日期大于或小于当前日期,如何检查日期?,c#,C#,我想检查所需日期是否大于或小于当前日期 由于当前日期是2018年4月5日,所以我想得到2017年9月1日的日期。如果当前日期在2018年9月1日之后,则我需要2018年9月1日 请指导我如何做到这一点。如果您能为我提供指导,我将不胜感激。DateTime dt=newdatetime(DateTime.Today.Year,9,1); DateTime dt = new DateTime(DateTime.Today.Year, 9, 1); DateTime result = dt; if(D

我想检查所需日期是否大于或小于当前日期

由于当前日期是2018年4月5日,所以我想得到2017年9月1日的日期。如果当前日期在2018年9月1日之后,则我需要2018年9月1日

请指导我如何做到这一点。如果您能为我提供指导,我将不胜感激。

DateTime dt=newdatetime(DateTime.Today.Year,9,1);
DateTime dt = new DateTime(DateTime.Today.Year, 9, 1);
DateTime result = dt;
if(DateTime.Today <= dt)
    result = dt.AddYears(-1);
日期时间结果=dt;
if(DateTime.Today不是最优雅但可能是最简单的解决方案

var result = Convert.ToDateTime("01/09/" + DateTime.Now.Year);
if (result > DateTime.Now) result = result.AddYears(-1);

这听起来像是基本的日期比较功能,谷歌需要2秒钟的时间:DateTime有>,我不能手动输入年份的可能重复。它应该总是比当前年份提前1年。月份和日期可以。你能相应地给出答案吗?我不是故意粗鲁,但这是一种创建日期时间的糟糕方法,当你可以d同样容易使用DateTime构造函数。为了说明这一点,我制作了一个小程序来获得两种不同方法的平均值,为每种方法创建了超过1亿个DateTime。平均而言,普通构造函数在860.6ms内创建了1ml DateTime,而ToDateTime()在1664.08ms内完成。这意味着ToDateTime()比普通构造函数慢约93.4%,可能是因为涉及到字符串操作。几乎是构造函数的两倍!同样,不要小看这一点,我只是在工作中感到无聊。