C# 7天后怎么找时间?

C# 7天后怎么找时间?,c#,asp.net-mvc-4,datetime,C#,Asp.net Mvc 4,Datetime,我有一个名为schedule的表,模型的名为schedule。每个日程表都有自己的日程表日期。我想问一下如何在这个表中只显示今天和今天前7天以及今天后7天的日程安排 以下是我目前掌握的情况: var viewModel = new ScheduleViewModel(); viewModel.schedule = db.schedule.Where( x.DateOfSchedule.Year == DateTime.Now.Year && x.DateO

我有一个名为schedule的表,模型的名为schedule。每个日程表都有自己的日程表日期。我想问一下如何在这个表中只显示今天和今天前7天以及今天后7天的日程安排

以下是我目前掌握的情况:

var viewModel = new ScheduleViewModel();    
viewModel.schedule = db.schedule.Where(
    x.DateOfSchedule.Year == DateTime.Now.Year &&
    x.DateOfSchedule.Month == DateTime.Now.Year &&
    x.DateOfSchedule.Day <= DateTime.Now.Year
).ToList();
您可以编写

var viewModel = new ScheduleViewModel();    
viewModel.schedule = db.schedule.Where( x =>
    Math.Abs((x.DateOfSchedule - DateTime.Now).TotalDays) <= 7).ToList();

这是我的建议。注意:使用日期部分忽略时间

viewModel.schedule = db.schedule.Where(x=> x.DateOfSchedule.Date >= DateTime.Today.AddDays(-7) 
   && x.DateOfSchedule.Date <= DateTime.Today.AddDays(7)).ToList();

试试这个x.DateOfSchedule=DateTime.Now.AddDays-7你的Where需要一个lambda表达式-你不能有.Wherex.y==z,但是你可以有.Wherex=>x.y==z,因为没有定义x.DateTime.Today比等价的DateTime.Now更简洁。Date@Joe是的,这是一种选择。
viewModel.schedule = db.schedule.Where(x=> x.DateOfSchedule.Date >= DateTime.Today.AddDays(-7) 
   && x.DateOfSchedule.Date <= DateTime.Today.AddDays(7)).ToList();