C# 日期时间比较问题

C# 日期时间比较问题,c#,.net,datetime,C#,.net,Datetime,我必须比较linq查询中的三个日期(datetime a

我必须比较linq查询中的三个日期(datetime a 这就是你想要的吗:

(a.Month < b.Month || (a.Month == b.Month && a.Day < b.Day)) && (b.Month < c.Month || (b.Month == c.Month && b.Day < c.Day))
(a.Month
这就是您要寻找的:

(a.Month < b.Month || (a.Month == b.Month && a.Day < b.Day)) && (b.Month < c.Month || (b.Month == c.Month && b.Day < c.Day))
(a.Month
您可以使用当前年份创建新的日期时间:

var year = DateTime.Now.Year;
var dateATemp = new DateTime(year, dateA.Month, dateA.Day);
var dateBTemp = new DateTime(year, dateB.Month, dateB.Day);
var dateCTemp = new DateTime(year, dateC.Month, dateC.Day);
public static DateTime ToDateTimeWithCurrentYear(this DateTime value)
{
    return new DateTime(DateTime.Now.Year, value.Month, value.Day);
}
现在比较dateATemp 您可以从DateTime编写一个扩展方法,该方法将返回当前年份的新DateTime实例:

var year = DateTime.Now.Year;
var dateATemp = new DateTime(year, dateA.Month, dateA.Day);
var dateBTemp = new DateTime(year, dateB.Month, dateB.Day);
var dateCTemp = new DateTime(year, dateC.Month, dateC.Day);
public static DateTime ToDateTimeWithCurrentYear(this DateTime value)
{
    return new DateTime(DateTime.Now.Year, value.Month, value.Day);
}
然后像这样使用它:

dateA.ToDateTimeWithCurrentYear() < dateB.ToDateTimeWithCurrentYear() < dateC.ToDateTimeWithCurrentYear()
dateA.ToDateTimeWithCurrentYear()
您可以使用当前年份创建新的日期时间:

var year = DateTime.Now.Year;
var dateATemp = new DateTime(year, dateA.Month, dateA.Day);
var dateBTemp = new DateTime(year, dateB.Month, dateB.Day);
var dateCTemp = new DateTime(year, dateC.Month, dateC.Day);
public static DateTime ToDateTimeWithCurrentYear(this DateTime value)
{
    return new DateTime(DateTime.Now.Year, value.Month, value.Day);
}
现在比较dateATemp 您可以从DateTime编写一个扩展方法,该方法将返回当前年份的新DateTime实例:

var year = DateTime.Now.Year;
var dateATemp = new DateTime(year, dateA.Month, dateA.Day);
var dateBTemp = new DateTime(year, dateB.Month, dateB.Day);
var dateCTemp = new DateTime(year, dateC.Month, dateC.Day);
public static DateTime ToDateTimeWithCurrentYear(this DateTime value)
{
    return new DateTime(DateTime.Now.Year, value.Month, value.Day);
}
然后像这样使用它:

dateA.ToDateTimeWithCurrentYear() < dateB.ToDateTimeWithCurrentYear() < dateC.ToDateTimeWithCurrentYear()
dateA.ToDateTimeWithCurrentYear()
你能告诉我们你到目前为止有什么吗?你能告诉我们你到目前为止有什么吗?小心闰年!如果用户的日期是2月29日,但
DateTime.Now
不在闰年,则您将遇到异常。除此之外,这与我建议的so+1相似。@Luke,闰年的接球非常好。没想过。因为年份不重要,你可以用闰年,就像
int year=2008
小心闰年!如果用户的日期是2月29日,但
DateTime.Now
不在闰年,则您将遇到异常。除此之外,这与我建议的so+1相似。@Luke,闰年的接球非常好。没想过。因为年份不重要,你可以用闰年,比如
int year=2008