Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^2: Determing Week Ranges between given date range?

by mojotoad (Monsignor)
on Oct 12, 2010 at 17:20 UTC ( #864909=note: print w/ replies, xml ) Need Help??


in reply to Re: Determing Week Ranges between given date range?
in thread Determing Week Ranges between given date range?

If you want the first day of the week to be something besides Sunday, you can do this:

my $dow1 = 1; # (0-7) ... while ($week_s <= $e) { ($week_e = $week_s->clone())->add( days => ($dow1 + (7 - $week_s->dow()) % 7, ); ...

Cheers,
Matt


Comment on Re^2: Determing Week Ranges between given date range?
Download Code
Re^3: Determing Week Ranges between given date range?
by ikegami (Pope) on Oct 12, 2010 at 18:16 UTC

    If you want the first day of the week to be something besides Sunday

    He wants it to be Monday.

    you can do this:

    You have an off-by-one error.

    my $first_dow = 1; # 0=Sun, 1=Mon, ..., 7=Sun ... # Day before first $first_dow after $week_s ->add( days => ((7 - $week_s->dow()) + ($first_dow + 6)) % 7 );
      Sort of...actually, I cribbed that code from something I had lying around -- that code was designed around the convention of 0=Mon, 1=Tue, etc. But I forgot, oops.

      After fixing that assumption, this also works (closer to the form I originally used). 0=Sun, 1=Mon ... :

      days => ($first_dow + (6 - $week_s->dow())) % 7
      Thanks for spotting it.

      Cheers,
      Matt

        Yeah, that's functionally equivalent, but I wanted to keep the two halves of the equation separate (calculating the last day of the week and calculating the number of days until the last day of the week). In mine, ($first_dow + 6) can be replaced with $last_dow.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://864909]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (16)
As of 2014-07-24 16:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (162 votes), past polls