Rick:

In DateTime::Event::Easter:

  * as_set(from => $dt, to => $dt2, inclusive=>([0]|1)) 

  Returns a DateTime::Set of Easter Events between to and from.

How about changing:

  sub as_set {
      my $self = shift;
      return DateTime::Set->from_datetimes( dates => [
$self->as_list(@_) ] );
  }

To:

  # untested code
  sub as_set {
      my $self = shift;
      return DateTime::Set->from_recurrence( 
          next => sub { $self->following( $_[0] },
          previous => sub { $self->previous( $_[0] },
          @_
      );
  }

This will give the following syntax:

  $set = $easter->as_set;  # all easters forever
  $set = $easter->as_set( after => $dt );  # all easters after $dt
  $set = $easter->as_set( start => $dt );  # all easters after $dt,
maybe including $dt
  $set = $easter->as_set( before => $dt ); # all easters before $dt
  $set = $easter->as_set( end => $dt );    # all easters before $dt,
maybe including $dt
  $set = $easter->as_set( start => $dt1, end => $dt2 );  # all easters
in the span
  $set = $easter->as_set( after => $dt1, before => $dt2 );  # all
easters inside the span
  $set = $easter->as_set( span => $dt_span );  # all easters in the
DateTime::Span

- Flavio S. Glock

Reply via email to