Автоматическое назначение дня

#c# #datetime

#c# #дата-время

Вопрос:

Мне нужна помощь по автоматическому назначению дня. Я не смог найти правильный способ. Теперь проблема в том, что у меня есть фитнес-программа. И я добавлю нового пользователя. Когда я добавлю, я тоже добавлю программу. Фитнес-программа имеет ограничение.

Например. 8 сеансов. Затем пользователь выбирает каждую субботу и воскресенье.

16.03.2019 , 17.03.2019 , 23.03.2019 , 24.03.2019 ,
30.03.2019 , 31.03.2019 , 06.04.2019 , 07.04.2019

Даты будут назначены автоматически в соответствии с выбранным им. да.ДНИ выбираются по дням недели. Например, ‘0,6’ и да.КОНЕЧНО, означает ограничение просмотров

 if(uy.UYELIK== "PLATES")
{
    DateTime date = DateTime.Now.Date;
    System.TimeSpan duration = new System.TimeSpan(1, 0, 0, 0);
   
    for (int i = 0; i < uye.SURE; i  )
    {
        date = date.Add(duration);
        var list = uye.DAYS.Split(',');
        for(int j = 0; j < list.Length; j  )
        {
          if ((int)date.DayOfWeek == Convert.ToInt32(list[j]))
          {
              HR_FITNESS_USER_PLATES_PROGRAM program = new HR_FITNESS_USER_PLATES_PROGRAM();
              program.REF_HOCA = uye.HOCA;program.SEANS_LIMIT = uye.SURE;program.SEANS_TIME = date;program.REF_UYELIK = uy.ID;program.SICIL = uye.SICIL.ToString();
              db.HR_FITNESS_USER_PLATES_PROGRAM.Add(program);db.SaveChanges();  
          }
        }
    }
}
  

Этот код неверен. Здесь я не могу увеличить день, если не один из них. Как я могу это сделать?

Комментарии:

1. Пожалуйста, не размещайте код с огромными кусками начальных пробелов. Это просто затрудняет чтение. Вы можете удерживать нажатой Alt клавишу в VS, чтобы выделить произвольный прямоугольник текста, поэтому вам не нужно копировать пробелы в первую очередь, но, даже если вы скопируете его, вы все равно можете использовать кнопку code в редакторе, чтобы удалить лишнее. Делайте все, что в ваших силах, чтобы помочь нам помочь вам.

2. Я понимаю турецкий, но я не могу понять, что вы хотите сделать. Я думаю, что лучшим способом является традиционный способ, при котором пользователь выбирает дни и время с помощью календаря.

Ответ №1:

Как я понимаю, вам нужно вставить фитнес-программу выходного дня для участника. Вот простой псевдокод для этого,

 var startDate = DateTime.Today; //today

int currentDayOfWeek = (int)startDate.DayOfWeek; //today

//saturday of this week, disregarding if today is 
//saturday or sunday, it is up to you to enhance this.
DateTime thisSaturday = startDate.AddDays(6 - currentDayOfWeek); 

var sessions = 8;

for (int i = 0; i<sessions; i  )
{
    SaveToDb(thisSaturday);
    thisSaturday = thisSaturday.AddDays(7);  //next week's weekend       
}

private void SaveToDb(DateTime saturday)
{
    DateTime sunday = saturday.AddDays(1);
    //insert data for saturday and sunday
}