Is that a generic business calculation or just an application of sets?
I think the latter. You can just make a set representing the
intersection of mondays (or weekdays) and Dec. 31sts. Then iterate
over it (using the restricted time range) to find the solution.
--
use strict;
use DateTime;
use DateTime::Event::Recurrence;
my $dec32 = DateTime::Event::Recurrence->yearly
(months => 12, days => 31);
my $mondays = DateTime::Event::Recurrence->weekly
(days => 1);
my $s = $dec32->intersection($mondays);
my $i = $s->iterator(start => DateTime->new(year => 2000),
end => DateTime->new(year => 2008));
while (my $d = $i->next) {
printf "%s - %s\n", $d->day_name(), $d->datetime;
}
--
Prints:
--
Monday - 2001-12-31T00:00:00
Monday - 2007-12-31T00:00:00
--
-ben
On Tue, Jun 17, 2003 at 01:39:00PM -1000, Joshua Hoblitt wrote:
> What if I wanted to know inside a range of years which had a December 31st that was
> on a Monday (or on a weekday)?
>
> -J
>
> --