获取生日提醒Linq Query无视年份

kar*_*art 5 c# model-view-controller linq-to-sql

我正在使用C#MVC,我需要获取在未来20天内生日的用户详细信息.使用linq to sql查询只想比较日期和月份而不是年份,为了获取在接下来的20天内生日的用户,任何人都会帮助我使用linq to sql查询来获取在接下来的20天内生日的用户.

提前致谢,

Dan*_*ott 4

为什么不将生日存储在局部变量中,将年份更改为当前年份,然后检查它是否在接下来的 20 天内发生?

public bool IsBirthdayInNextTwentyDays(DateTime actualBirthday)
{
var birthday = actualBirthday;
birthday.Year = DateTime.Now.Year;

return birthday > DateTime.Now && birthday < DateTime.Now.AddDays(20);
}
Run Code Online (Sandbox Code Playgroud)

然后在 Linq 中类似:

user.Where(u => IsBirthDayInNextTwentyDays(u.Birthday));
Run Code Online (Sandbox Code Playgroud)

善良,

  • 您不能像这样为“DateTime.Year”赋值,因为它是只读属性,而“DateTime”是不可变类型。您*可以*做的是使用您想要的值创建一个新的“DateTime”:“varbirthday=newDateTime(DateTime.Now.Year,actualBirthday.Month,actualBirthday.Day;” (3认同)