Я ищу самый умный алгоритм для определения количества событий, происходящих раз в две недели в данном календарном месяце, в пределах определенного ряда.
, т. Е. Для серии "Каждый второй четверг с 7 октября 2010 года"«события» падают (7 октября 2010 года, 21 октября, 4 ноября, 18 ноября, 2 декабря, 16 декабря, 30 декабря, ...)
Итак, что мне нужно, так это функция
function(seriesDefinition, month) -> integer
where:
- seriesDefinition is some date that is a valid date in the series,
- month indicates a month and a year
таким образом, что он точно выдает: numberFortnightlyEventsInSeriesThatFallInCalendarMonth
Примеры:
NumberFortnightlyEventsInMonth ('7 октября 2010,' окт 2010 ') -> 2
NumberFortnightlyE('7 октября 2010 г.,' ноябрь 2010 г.) -> 2
NumberFortnightlyEventsInMonth ('7 октября 2010 г., декабрь 2010 г.) -> 3
Обратите внимание, что в октябре 2 события, в ноябре - 2события, но декабрь имеет 3 события.
Предпочитается Psuedocode.
Я не хочу полагаться на таблицы поиска, вызовы веб-служб или любые другие внешние ресурсы, кроме потенциально универсальныйбиблиотеки.Например, я думаю, мы можем с уверенностью предположить, что большинство языков программирования будут иметь некоторые функции манипуляции с датой.