2014-06-06 3 views
-1

토요일과 금요일에 시작하여 끝나는 동일한 요일의 모든 다른 요일을 얻고 싶습니다.하루 중 모든 요일을 선택하는 방법은 무엇입니까?

나는 현재

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 


    } 

참고하고 있어요 어떤 모델

public TimeModel 
{ 
    public int ID 
    public DateTime Day 
} 

: 아니 정확히 내 코드, 내 문제의 단지 단순화.

내 솔루션을 요약하면 :
이) 토요일
B) I 금요일
D에 도달 할 때까지) 반복
C 날짜에 해당 모델을 찾을 때까지 지정된 날짜 빼기) 금요일
포함 한 번 더 목록에 추가

linq/sql 문을 작성하여 필요한 모델 (날짜 관련)을 간단하게 선택할 수 있습니까?

답변

0

현재 주를 가져 오는 샘플 구현을 찾을 수 있습니다.

 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(); 
관련 문제