.net 日期之间的月差

.net 日期之间的月差,.net,.net,可能重复: 大家好: 如何使用LINQ计算两个日期之间的月差?我可以使用以下方法查找天数差异: (p.Account.StateChangeDate.Date-DateTime.Now.Date)。天数

可能重复:

大家好:

如何使用LINQ计算两个日期之间的月差?我可以使用以下方法查找天数差异:

(p.Account.StateChangeDate.Date-DateTime.Now.Date)。天数<4天

但几个月内没有选择

请建议。

试试看


从该问题中选择要使用的算法

然后,如果您使用的是Linq2Sql,那么几乎所有这些操作都将映射回数据库,作为
DATEPART
类型操作(我认为)


或者,您可以使用类似in-的函数在SQL中进行计算,然后将其作为函数公开给Linq2Sql

这应该可以为您计算月份,但它是不规则的,因为有些月份有30天,例如,2月份可以有28天或29天

int months = MaxDate.Subtract(MinDate).Days / 30;

这与LINQ无关,它只是以月为单位计算日期间隔(根据dupe)。在您的情况下,一个月有多长,28、29、30或31天?或者你是在期待一个完整的月数和天数,在这种情况下,从2月15日到4月17日会发生什么,是1个月30天吗?或者2个月2天?我需要一个通用函数来计算两个DAT之间的月差,并在LINQ查询中使用它。检查这个函数,以获得100%准确的定义(和计算代码)。月-它不在LINQ中,但您可以轻松地转换为它。.NET框架对这一问题的忽视可以通过以下帖子解决: