Я столкнулся с довольно сложной ситуацией, поэтому мне сложно определить правильное название для этого вопроса. Я объясню более подробно, так голый со мной!Recur каждые x недель
Я разрабатываю приложение WPF, которое использует ORM (EntityFramework). Приложение позволяет пользователю планировать определенные задачи. Эти задачи могут повторяться каждые x недель. Например: Обслуживание Google.com каждые 2 недели (начиная с понедельника).
Как я хранил это как следует. У меня есть объект Task с полем «StartDate», который является датой начала первой задачи. Я также создал поле под названием «Recur» (я знаю, что имена могут быть лучше). Поле «Recur» содержит количество недель, которое должна повторить определенная задача. Поэтому в моем примере выше он содержит номер 2, поскольку обслуживание на Google.com должно выполняться каждые 2 недели.
Теперь наступает ситуация, с которой я столкнулся; Я хочу, чтобы пользователь мог получить ВСЕ задания в определенном номере недели. Например: Получить все задания на неделе 42 из 2013 года. Если я выполнил задание, которое повторяется каждую неделю, это означает, что когда я хочу получить все задания недели 42, эта задача должна появиться. Он также должен появиться, когда я получаю все задания на 44, 46, 48 и т. Д.
Как определить, попадает ли задача в определенный номер недели и ее выбор? Я пытался следующее:
context.Werk.Include("Debiteur").Where(o => o.Recur >= EntityFunctions.DiffDays(o.StartDate, today)/7
&& EntityFunctions.DiffDays(o.StartDate, today)/7 % o.Recur == 0).ToList();
В основном то, что я пытался сделать, это проверить, если количество «повторялись» недели равна или больше, чем сумма даты она отличается между StartDate и сегодня. Я также проверил, не отличается ли количество недель от стартовой, и сегодня нечувствительно к полю «recur».
Я действительно застрял в этой ситуации, и мне действительно нужны свежие глаза и умы, чтобы помочь мне в этом. Я искренне надеюсь, что я достаточно хорошо разъяснил свою проблему.
вы должны держать время повторятся в объект TimeSpan –
не могли бы вы пояснить, почему Плюс это не решает право выпуска Может быть, его более аккуратным – Mittchel