I might be old-fashioned, but I think Time::Piece is overkill for this task:
sub usage {
my $err = shift and select STDERR;
say "usage: $0 YYYYMMDD [YYYYMMDD]";
exit $err;
} # usage
use Time::Local "timelocal_posix";
my $from = shift or usage (1);
my $to = shift || do {
my @d = localtime; (($d[5] + 1900) * 100 + $d[4] + 1) * 100 + $d[3
+] };
my ($y, $m, $d, $Y, $M, $D) = "$from:$to" =~ m{
([1-9][0-9]{3}) -? (0[1-9]|1[0-2]) -? (0[1-9]|[12][0-9]|3[01]) :
([1-9][0-9]{3}) -? (0[1-9]|1[0-2]) -? (0[1-9]|[12][0-9]|3[01])
}x or usage (1);
$from gt $to and usage (1);
my @w = qw( Sun Mon Tue Wed Thu Fri Sat );
$to = timelocal_posix (0, 0, 13, $D, $M - 1, $Y - 1900);
if ($d > 1) { $d = 1; $m++; }
if ($m > 12) { $m = 1; $y++; }
while (($from = timelocal_posix (0, 0, 12, $d, $m - 1, $y - 1900)) < $
+to) {
my @d = localtime ($from);
printf "%s %4d-%02d-%02d\n", $w[$d[6]], $d[5] + 1900, $d[4] + 1, $
+d[3];
if (++$m > 12) { $m = 1; $y++; }
}
Enjoy, Have FUN! H.Merijn
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.