Определите, имеет ли данный диапазон дат образец - PullRequest
0 голосов
/ 21 сентября 2011

Я имею дело с алгоритмом в проекте, где мне нужно пересечь диапазон дат (отсортированный), и мне нужно проверить, соответствуют ли даты определенному шаблону. Вот список всех возможных шаблонов для обнаружения:

  • Нет (шаблон не обнаружен. Просто случайная группа дат)
  • 4 понедельника подряд
  • 4 вторника подряд
  • 4 среды подряд
  • 4 четверга или более подряд
  • 4 пятницы или более подряд
  • 4 субботы или более подряд
  • 4 воскресенья или больше подряд
  • пн, вт, ср и чт вместе
  • вт, ср, чт и пт вместе
  • Ср, Чт, Пт и Сб вместе
  • Чт, Пт, Сб и Солнце вместе
  • Каждый второй понедельник
  • Каждый вторник
  • Каждую среду
  • Каждый четверг
  • Каждую пятницу
  • Каждую субботу
  • Каждое воскресенье

Все эти шаблоны могут быть представлены через Enum. Мне нужно определить с помощью функции шаблон, которому соответствует данный диапазон дат.

Теперь к каждому шаблону также прикреплено условие. Например:

4 понедельника подряд требует, чтобы в коллекции дат было как минимум 4 даты, а если их больше четырех, общее число дат должно быть истинным, как -> количество дат MOD 4 == 0

Пн, Вт, Ср и Чт вместе требует, чтобы при сборе дат было как минимум 4 даты без пробелов, а если их больше четырех, общее число дат должно быть истинным, как -> количество дат MOD 4 == 0

Любая помощь будет оценена. Привет.

1 Ответ

1 голос
/ 21 сентября 2011

Создайте класс для каждого шаблона, который вы хотите сопоставить (все классы наследуют от базы), есть что-то вроде метода «feed» для передачи ему даты, прогоните данные через все эти классы шаблона, затем получите некоторыеметод оценки классов шаблонов, который сообщит вам, удовлетворены ли критерии

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