【问题标题】:Months difference between dates [duplicate]日期之间的月差[重复]
【发布时间】:2011-04-01 16:12:58
【问题描述】:

可能重复:
Difference in months

大家好:

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

(p.Account.StateChangeDate.Date - DateTime.Now.Date).Days

但几个月都没有选择。

请提出建议。

【问题讨论】:

  • 这与 LINQ 无关,它只是计算以月为单位的日期间隔(根据欺骗)。
  • 在您的情况下,一个月是多长时间,28、29、30 或 31 天?或者您是否期望整数个月和天数,在这种情况下,从 2 月 15 日到 4 月 17 日会发生什么,是 1 个月零 30 天吗?还是 2 个月零 2 天?
  • 我需要通用函数来计算两个日期之间的月份差异并在 LINQ 查询中使用它
  • 查看此内容以获得 100% 准确的定义(以及计算代码)。月份 - 它不在 LINQ 中,但您可以轻松转换为它。 .NET 框架对此问题的无知可以通过这篇文章解决:stackoverflow.com/questions/1916358/…

标签: .net


【解决方案1】:

试试calculating the difference in months between two dates


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

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

或者,您可以使用http://www.sqlmag.com/article/sql-server/calculating-month-difference.aspx 中的函数在 SQL 中进行计算 - 然后可以将其作为函数公开给 Linq2Sql

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-04-18
      • 2012-05-12
      • 2010-09-22
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多