第一天和最后一年

时间:2012-07-21 07:26:39

标签: linq linq-to-sql linq-to-objects

需要通过linq方法将日期与一年中的第一天和一年中的最后一天进行比较

c.TERMINATION_DATE < FirstDayofYear (DateTime.Now)
     && c.TERMINATION_DATE > LastDayOfYear(DateTime.Now)

1 个答案:

答案 0 :(得分:2)

幸运的是,一年的第一天和最后一天总是一样的:1月1日和12月31日:

// Only fetch the property *once*, for consistency
DateTime today = DateTime.Today;
DateTime start = new DateTime(today.Year, 1, 1);
DateTime end = new DateTime(today.Year, 12, 31);

...
// In your LINQ query
where c.TerminationDate < start || c.TerminationDate > end
...

请注意,我已将条件更改为||而不是&& - 毕竟,该值不能超过一年的第一天之后一年的最后一天。如果当然,你的条件可能是错误的。

另请注意,如果您的TerminationDate属性实际存储日期/时间而不仅仅是日期,则可能会遇到问题 - 因为开始/结束将在开始时的午夜他们各自的约会。

要考虑的另一件事 - 也有点简单 - 只是才能使用年份:

int year = DateTime.Today.Year;

...
// In your LINQ query
where c.TerminationDate.Year != year
...