On Mar 20, rory oconnor said: >Can anyone think of a good way for me to find out what the date of last >sunday is with perl? I'm writing a script that will need to do some >basic reporting starting from the previous sunday. > >I'm usign the date format YYYY-MM-DD
I suggest the standard Time::Local module. It's timelocal() function, along with the builtin localtime() function, allow you do to virtually anything. use Time::Local; use constant SECONDS_PER_DAY => 86400; my ($year, $mon, $day) = (2002, 3, 20); # today's date my $today_at_noon = timelocal(0,0,12, $day, $mon-1, $year-1900); my $days_since_sunday = (localtime $today_at_noon)[6] || 7; my $sunday = $today_at_noon - $days_since_sunday * 86400; Now we have $sunday, the number of seconds that represents last Sunday; in the event that this program is run ON a Sunday, we reach back to last week's Sunday. With this value, you can then do: my ($d, $m, $y) = (localtime $sunday)[3,4,5]; and concoct a date in the form of YYYY-MM-DD like so: sprintf "%4d-%02d-%02d", $y+1900, $m+1, $d; -- Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/ RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/ ** Look for "Regular Expressions in Perl" published by Manning, in 2002 ** <stu> what does y/// stand for? <tenderpuss> why, yansliterate of course. [ I'm looking for programming work. If you like my work, let me know. ] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]