in reply to start and end date for a week

There is probably a module on CPAN that will do something like this. But here is one easy way to do it utilizing mysql. Granted, this method probably is not by any means optimal considering the simple task at hand but it will give you the results you are looking for.
#!/usr/bin/perl -w use strict; use DBI; my $dbh = DBI->connect('DBI:mysql:databasename','user','password') or +die "Couldn't open database: ". DBI->errstr . "\n"; my $sth = $dbh->prepare("SELECT date_format(?,'%V')"); my $rc = $sth->execute('2003-01-5'); my @temp = $sth->fetchrow_array; print "WEEK: $temp[0]\n"; exit;
By the way if your week starts on Monday instead of Sunday use this:
my $sth = $dbh->prepare("SELECT date_format(?,'%v')");
Again, let me say that this is not the way to do it but it will work.

Replies are listed 'Best First'.
Re: Re: start and end date for a week
by Anonymous Monk on Dec 01, 2003 at 21:53 UTC
    Granted, this method probably is not by any means optimal considering the simple task at hand but it will give you the results you are looking for.
    MySQL's date_format is a frontend to the POSIX function strftime. Use the Perl interface to this instead of MySQL.
    use POSIX 'strftime'; # what week is December 1, 2003? # strftime takes month-1 and year-1900 as arguments print strftime("%U",0,0,0,1,11,103); # or use "%V" for weeks starting Monday
      Thanks for the info. I didn't know about strftime. I'm sure I will find it useful in the future.

      As I said in my original post, I know this is not the right way to do it but it will work. So I lost a little XP for posting a workable yet unworthy answer. At least I gained real experience from it and that's why I come to PM anyway (for experience and knowledge not points or trophies).