I am looking for a Perl script which can give me the last Monday for any specified date.
e.g. For date 2011-06-11, the script should return 2011-06-06
There are lot of ways to do it in Perl. Here is how it can be done with Perl library Moment.
#!/usr/bin/perl
use strict;
use warnings FATAL => 'all';
use feature 'say';
use Moment;
sub get_monday_date {
my ($date) = @_;
my $moment = Moment->new( dt => "$date 00:00:00" );
my $weekday_number = $moment->get_weekday_number( first_day => 'monday' );
my $monday = $moment->minus( day => ($weekday_number - 1) );
return $monday->get_d();
}
say get_monday_date('2011-06-11'); # 2011-06-06