in reply to Is there an easy way to get the start date of the current week?

Yes looking at the MySql that would work nicely I guess. However it would still be nice to do it in perl so the variable can be used as a title in the report ie report for week beginning xxx

I have found an answer that could be adapted for my request at http://datetime.perl.org/index.cgi?FAQSampleCalculations Thanks everyone for your input

# The date and target (1 is Monday, 7 Sunday) my $dt = DateTime->new(year => 1998, month => 4, day => 3); # Friday my $target = 6; # Saturday # Get the day of the week for the given date my $dow = $dt->day_of_week(); # Apply the corrections my ($prev, $next) = ($dt->clone(), $dt->clone()); if ($dow == $target) { $prev->add( days => -7 ); $next->add( days => 7 ); } else { my $correction = ( $target - $dow + 7 ) % 7; $prev->add( days => $correction - 7 ); $next->add( days => $correction ); } # $prev is 1998-03-28, $next is 1998-04-04
  • Comment on Re: Is there an easy way to get the start date of the current week?
  • Download Code

Replies are listed 'Best First'.
Re^2: Is there an easy way to get the start date of the current week?
by ikegami (Patriarch) on Aug 21, 2010 at 15:55 UTC

    It doesn't find the current week — it finds the week before and after a reference date — and it's more elaborate than necessary.

    For Sunday,

    my $dt = DateTime->today(); my $dow = $dt->day_of_week(); $dt->substract( days => $dow % 7 );

    For Monday,

    my $dt = DateTime->today(); my $dow = $dt->day_of_week(); $dt->substract( days => ( $dow + 6 ) % 7 );
Re^2: Is there an easy way to get the start date of the current week?
by ruzam (Curate) on Aug 21, 2010 at 19:03 UTC

    If I'm already using MySQL, I usually don't bother trying to calculate dates with in the code. You can use MySQL to calculate the date in your query and return the date value along with the other query results. Alternatively, you can call MySQL first with a query that does nothing more than calculate the desired date, then use that result in report headings and later queries.

    Just saying, there's always more than one way to a solution.