Какой самый эффективный способ проверить, не попадает ли дата между повторением промежутка времени, используя класс даты C#.
Например, у вас есть период с 01.01.2009 с 1:00:00 до 01.06.2009 17:00, который повторяется каждые Икс количество лет, месяцев или недель и т. д.
И я хочу проверить, попадает ли переменная дата x между повторениями
Я читал Статья Мартина Фаулера о временных выражениях, но все его примеры относятся к однодневным событиям, а не к тем, которые могут охватывать несколько дней.
Адам. Я учитываю это, давая пользователю возможность выбрать вхождение дня недели (пн, вт и т. д.) В месяце или дня месяца (что в некоторых случаях не происходит).
Извините, я не понимаю о чем вы.





Следующее условие должно выполняться:
(time - begin) mod period < (end - begin),
при условии, что period > (begin - end)
Все переменные должны быть выражены в одних и тех же единицах (например, секундах или любой другой точности, которая вам нужна).
К сожалению, большинство периодов, связанных с датой, непостоянны (месяцы - 28-31 день, годы - 365/366 дней и т. д.).
Это очень изящный метод, который отлично работает для численно постоянных расстояний между интервалами (например, 7 дней, 30 дней, 365 дней), но если должны соблюдаться правила, основанные на дате, например, «каждый месяц», «каждый год», тогда что-то еще требуется (см. мой комментарий к вопросу).
Всегда ли период повторения будет численно идентичным (например, 7 дней, 30 дней, 365 дней) или он должен соответствовать правилам, основанным на дате, например каждый месяц, каждый год? Если второе, что произойдет в феврале, если период с 29 января по 31 января?