in reply to Finding the dates for the reminder mail system

I've used Date::Manip for a similar (not the same) problem. From the documentation:
"Miscellaneous other allowed formats are: which dofw in mmm in YY "first Sunday in June 1996 at 14:00" ** dofw week num YY "Sunday week 22 1995" ** which dofw YY "22nd Sunday at noon" ** dofw which week YY "Sunday 22nd week in 1996" ** next/last dofw "next Friday at noon" next/last week/month "next month" in num days/weeks/months "in 3 weeks at 12:00" num days/weeks/months later "3 weeks later" num days/weeks/months ago "3 weeks ago" dofw in num week "Friday in 2 weeks" in num weeks dofw "in 2 weeks on Friday" dofw num week ago "Friday 2 weeks ago" num week ago dofw "2 weeks ago Friday" last day in mmm in YY "last day of October" dofw "Friday" (Friday of current week) Nth "12th", "1st" (day of current month) epoch SECS seconds since the epoch (negative values are supported)."
Per the author: "Date::Manip is written entirely in Perl. It's the most powerful of the date modules. It's also the biggest and slowest." I do like it a lot, as long as performance isn't an issue. All for what it's worth.