Ah, OK. Here's a version that does it algorithmically, rather than using Date::Manip. You'll have to correct for the "If it's Thursday" problem, but this will generate a list of all Friday's in the year.
Also, just as a side note, if you're not using 'use strict', and -w, I'd highly recommend enabling that. It'll help you track down problems a lot faster.
#!/usr/local/bin/perl -w
use strict;
use Time::Local 'timelocal_nocheck';
{
my $friday_date;
my $now = time (); # Not used, here, but it's where the time would
+ come from
for (my $i = 0; $i < 365; $i++)
{
$now = timelocal_nocheck (0, 0, 0, $i, 0, 2000);
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$rest) = localtime ($
+now);
my $then = ((((5 - $wday) + 7) % 7) * (60 * 60 * 24));
($sec,$min,$hour,$mday,$mon,$year,$rest) = localtime ($now + $th
+en);
$mon += 1;
$year += 1900;
my $temp = sprintf ("%02d/%02d/%04d", $mon, $mday, $year);
if ($friday_date ne $temp)
{
print "$temp\n";
$friday_date = $temp;
}
}
}
--Chris
e-mail jcwren | [reply] [Watch: Dir/Any] [d/l] |
So, you want something like:
$now = time;
$hour = (localtime $now)[2];
$now += (12 - $hour)*60*60; # offset to noon-hour so DST doesn't fry u
+s
$dow = (localtime $now)[6];
$now += (($dow < 4 ? -2 : 5) - $dow)*24*60*60;
($y, $m, $d) = (localtime $now)[5,4,3];
$file = sprintf "%d_%d_%d.html", $m+1, $d, $y+1900;
perhaps?
-- Randal L. Schwartz, Perl hacker | [reply] [Watch: Dir/Any] [d/l] |