Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: RFC: List of first day of each month

by Tux (Canon)
on Jan 31, 2020 at 16:03 UTC ( [id://11112187]=note: print w/replies, xml ) Need Help??


in reply to RFC: List of first day of each month

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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11112187]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (2)
As of 2024-04-20 03:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found