You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LINQ中实现日期加2个月?代码修正咨询

修正LINQ中日期推移2个月的逻辑问题

我来帮你搞定这个问题——你原来的日期推移写法藏着个坑:当ResignLastDate的月份是11月或12月时,直接给月份加2会导致月份值超过12,触发ArgumentOutOfRangeException异常,完全没法正常运行。

正确的日期推移方案

.NET的DateTime类型自带了**AddMonths()**方法,它会自动处理跨年、跨月的边界情况(比如11月加2个月会变成次年1月,12月加2个月变成次年2月),根本不用你手动去算年份和月份,省心又靠谱。

修正后的完整代码

DateTime dtFrom = DateTime.Now; 
var Resignuser = db.Employees
    .Where(m => !m.IsDeleted && m.IsActive && m.IsResign == true 
                && m.ResignLastDate.Value.AddMonths(2) >= dtFrom 
                && m.StatusId != 3 && m.StatusId != 4)
    .Select(m => new { Display = m.FirstName + " " + m.LastName, GUID = m.GUID })
    .ToList();

关键修改说明

  • 替换了错误的手动构造日期逻辑:把new DateTime(m.ResignLastDate.Value.Year,m.ResignLastDate.Value.Month + 2 , 1)改成m.ResignLastDate.Value.AddMonths(2),确保日期计算安全且准确
  • 移除了Where条件开头多余的&&,避免语法编译错误

内容的提问来源于stack exchange,提问作者Raju Parmar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:43:54