Using only Perl standard modules:
use strict; use warnings; use Time::Local; use POSIX 'strftime'; while (1) { print "Enter year (yyyy) and month (mm), separated by a space: "; chomp(my $input = <STDIN>); last if !$input; next unless $input =~ /(\d{4})\s+(\d\d?)/; my ($year, $month) = ($1, $2); my ($y, $m) = ($year, $month); $y -= 1900; if ($m == 12) { $m = 0; ++$y; } my $first = timelocal(0, 0, 0, 1, $m, $y); my $last = $first - 24*60*60; print "The last day of $month/$year will be a ", strftime('%A', localtime $last), "\n"; }
"The first rule of Perl club is you do not talk about
Perl club."
-- Chip Salzenberg
In reply to Re: Determining the dayname for the last day of any given month
by davorg
in thread Determining the dayname for the last day of any given month
by McDarren
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |