I couldn’t find any existing solutions to this problem so … here’s what this plugin can do for you:
To find the next five Mondays and Fridays: DateFinderBase.weekly.day(:monday).day(:friday).find(:max => 5)
To find the 10th of the month for the next five months: DateFinderBase.monthly.day_number(10).find(:max => 5)
To find the last Thursday in September for the next 3 years DateFinderBase.yearly.month (:september).day(:thursday).day_occurrence(:last).find(:max => 3)
To find the next 5 Wednesdays on a fortnightly basis (skips every second week): DateFinderBase.weekly(2).day(:wednesday).find(:max => 5)
script/plugin install http://svn.viney.net.nz/things/rails/plugins/date_finder
Feedback welcome.
-Jonathan.