Sql 如何从给定日期中选择一周中的所有日期?
给定一个日期,我想得到同一周的所有其他日子,一周的开始和结束时间是周六和周五 模型 我现在在做什么Sql 如何从给定日期中选择一周中的所有日期?,sql,asp.net-mvc,linq,Sql,Asp.net Mvc,Linq,给定一个日期,我想得到同一周的所有其他日子,一周的开始和结束时间是周六和周五 模型 我现在在做什么 public Contrller{ private db = new ModelContext(); public AddDates(DateTime Date) { List<Model> list = new List<Model>(); int n = 0; while(Date.DayofWeek != DayofWeek.Sa
public Contrller{
private db = new ModelContext();
public AddDates(DateTime Date)
{
List<Model> list = new List<Model>();
int n = 0;
while(Date.DayofWeek != DayofWeek.Sauturday)
Date = Date.AddDats(-1) // keep subracting the date until I reach Saturday
while(Date.DayofWeek != DayofWeek.Friday
{
list.Add(Find(Date));
//Simply put for each date not Friday
// I find the corresponding model (the one with the same date)
//and add it to the list
Date = Date.AddDays(1)
}
list.Add(Find(Date)); // To add the Friday date to list
}
公共控制器{
private db=new ModelContext();
公共添加日期(日期时间日期)
{
列表=新列表();
int n=0;
while(Date.DayofWeek!=DayofWeek.Sauturday)
Date=Date.AddDats(-1)//在我到达星期六之前,一直计算日期
while(Date.DayofWeek!=DayofWeek.Friday
{
列表。添加(查找(日期));
//简单地说就是每个日期,而不是星期五
//我找到了相应的型号(日期相同的型号)
//并将其添加到列表中
日期=日期。添加天数(1)
}
list.Add(Find(Date));//将星期五日期添加到列表中
}
注意:不完全是我的代码,只是简化了我的问题
总结我的解决方案:a) 减去给定日期直到星期六
b) 查找与日期对应的型号
c) 重复,直到我到达星期五
d) 再次添加到列表以包括星期五
是否可以创建一个linq/sql语句来简单地选择所需的模型(关于日期)?您可以找到一个获取当前星期的示例实现
List<TimeModel> list = new List<TimeModel>();
int n = 0;
for (int i = 0; i < 200; i++)
list.Add(new TimeModel{ID = i, Day = DateTime.Now.AddDays(-i)});
var currentDay = new TimeModel() {ID = 0, Day = DateTime.Now};
var previousSaturday = currentDay.Day.AddDays(-(int)currentDay.Day.DayOfWeek - 1);
var nextFriday = previousSaturday.AddDays(6);
var currentWeek = list.Where(p => p.Day.DayOfYear >= previousSaturday.DayOfYear && p.Day.DayOfYear <= nextFriday.DayOfYear).OrderBy(p => p.Day.DayOfYear).ToList();
List List=新列表();
int n=0;
对于(int i=0;i<200;i++)
Add(newtimemodel{ID=i,Day=DateTime.Now.AddDays(-i)});
var currentDay=new TimeModel(){ID=0,Day=DateTime.Now};
var previousSaturday=currentDay.Day.AddDays(-(int)currentDay.Day.DayOfWeek-1);
var nextFriday=上一个星期六。添加天数(6);
var currentWeek=list.Where(p=>p.Day.dayof year>=上一个星期六.dayof year&&p.Day.dayof year p.Day.dayof year).ToList();
List<TimeModel> list = new List<TimeModel>();
int n = 0;
for (int i = 0; i < 200; i++)
list.Add(new TimeModel{ID = i, Day = DateTime.Now.AddDays(-i)});
var currentDay = new TimeModel() {ID = 0, Day = DateTime.Now};
var previousSaturday = currentDay.Day.AddDays(-(int)currentDay.Day.DayOfWeek - 1);
var nextFriday = previousSaturday.AddDays(6);
var currentWeek = list.Where(p => p.Day.DayOfYear >= previousSaturday.DayOfYear && p.Day.DayOfYear <= nextFriday.DayOfYear).OrderBy(p => p.Day.DayOfYear).ToList();