Joshua Hoblitt wrote:
> I'm planning on working with Iain and Flavio for any changes needed 
> to DT::F::Builder or DT::Duration::Set (when it's written).

Ok, how about this for DT::Duration:Set:

- convert from 'duration' to 'set'

  $dt_dur_set = from_durations( durations => [ $dur1, $dur2, $dur3 ] );
  # set = ( $dur1, $dur2, $dur3 )

- recurrence:

  $dt_dur_hourly = from_recurrence(
    next => sub {
        my %deltas = $_[0]->deltas;
        DateTime::Duration->new( 
             months => $deltas{months},
             days =>   $deltas{days},
             hours =>  1 + $deltas{hours}
        )
    }
  );
  # set = ( ... -PT2H, -PT1H, PT0, PT1H, PT2H ... )

- set a 'start time', result is a DT::Set

  add_datetime( date => $dt )
  # DT::Set = ( $dt + $dur1, $dt + $dur2, $dt + $dur3 )

- there are many other possibilities, let me know if you need more:

  DT::Dur::Span

  DT::Dur::SpanSet

  add_datetime_set( $dt_set )

  ...

Plus all the other common set methods:

  empty_set

  clone

  iterator / as_list

  union / intersection / complement

  intersects / contains

  previous / next / current / closest


- Flavio S. Glock

Reply via email to