#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
}