Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • sub partition {
        my ($start, $end, $n) = @_;
        my $s = $start->epoch;
        my $e = $end->epoch;
        my $i = int( ($e - $s) / $n );    # interval
        return map DateTime->from_epoch(epoch => $s + $i * $_), 0 .. $n;
    }
    ?
    • What's the point of having classes to handle date arithmetic if you have to convert back into numbers in order to do the math?

      That works, but one shouldn't have to go to those lengths.

      --
      J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
  • http://datetime.perl.org/index.cgi?FAQSampleCalculations [perl.org]

    # As a Perl list
    my $start_dt = DateTime->new(year => 1998, month  => 4,  day => 7);
    my $end_dt   = DateTime->new(year => 1998, month  => 7,  day => 7);

    my @list = ();
    for (my $dt = $start_dt->clone();
         $dt <= $end_dt;
         $dt->add(weeks => 1) )
    {
      push @list, $dt->clone();
    }

    # As a DateTime::Set.  We use DateTime::Event::Recurrence to easily
    # c

    • The first of those solutions only works if you know the size of the intervals you want to partition into ahead of time. I want to deal with the general case: say I have two moments in time that are exactly 29 days, 3 hours, 1 minute, and 17 seconds apart, and I want to divide it into 8 equal intervals? (My next journal entry does reveal the solution, but I'm just responding to show that I'm dealing with a harder problem than your solution addressed.)

      I think the same is true of the second solution. The

      --
      J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers