Foreach l oop не работает должным образом для получения данных за текущую неделю - PullRequest
0 голосов
/ 16 апреля 2020

У меня проблема: результат сохранения dateAndTime в базе данных имеет тип string в следующем формате 15.04.2020, но результат, который я получаю из базы данных, немного отличается от того, где я получаю что-то вроде Apr- 15-2020 00000 может кто-нибудь объяснить, почему это происходит и связано ли это с форматом компьютерной даты.

        foreach(var week in totalNumberOfPublishedJobViaApiweek1_Of_CurrentMonth)
        {
           if(week.DateAndTime.Substring(0,2) == "01" || week.DateAndTime.Substring(0, 2) == "02" || week.DateAndTime.Substring(0, 2) == "03" ||
            week.DateAndTime.Substring(0, 2) == "04" ||  week.DateAndTime.Substring(0, 2) == "05"|| week.DateAndTime.Substring(0, 2) == "06" ||
            week.DateAndTime.Substring(0, 2) == "07")
            {
            countWeek1++;
            }else if(week.DateAndTime.Substring(0, 2) == "08" || week.DateAndTime.Substring(0, 2) == "09" || week.DateAndTime.Substring(0, 2) == "10" ||
            week.DateAndTime.Substring(0, 2) == "11" || week.DateAndTime.Substring(0, 2) == "12" || week.DateAndTime.Substring(0, 2) == "13" ||
            week.DateAndTime.Substring(0, 2) == "14")
            {
             countWeek2++;
            }else if(week.DateAndTime.Substring(0, 2) == "15" || week.DateAndTime.Substring(0, 2) == "16" || week.DateAndTime.Substring(0, 2) == "17" ||
            week.DateAndTime.Substring(0, 2) == "18" || week.DateAndTime.Substring(0, 2) == "19" || week.DateAndTime.Substring(0, 2) == "20" ||
            week.DateAndTime.Substring(0, 2) == "21")
           {
            countWeek3++;
           }
           else
           {
            countWeek4++;
           } 

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

не уверен, что такое l oop ... не совсем уверен, что вы хотите получить в результате ... но позвольте мне догадаться ...

db.AllJobModel.Where(a=> a.Month == monthNow).ToList().GroupBy(x=>(int.Parse(x.DateAndtime.Substring(0,2))/7)+1).Select(x=>new { week = x.Key, sum=x.Sum()})

edit:

или 4-недельный вариант ...

db.AllJobModel.Where(a=> a.Month == monthNow).ToList().GroupBy(x=>(int.Parse(x.DateAndtime.Substring(0,2))/7)+1).Select(x=>new { week = x.Key <= 4 ? x.Key : 4, sum=x.Sum()})
0 голосов
/ 16 апреля 2020

Вы перебираете неделю, но ваши условия "если" проверяются на все дни месяца.

Может кто-нибудь объяснить, почему

Причина, по которой другие значения равны 0, заключается в том, что увеличивается только значение "countWeek1" (потому что вы циклически просматриваете неделю, а не месяц) поэтому остальные 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...