Perl Date::Manip, , ; -)
use strict;
use warnings;
use Date::Manip;
my @dates = (
'today',
'Tuesday',
'this Tuesday',
'next Tuesday',
'previous Tuesday',
'Friday',
'this Friday',
'first Tuesday of August 2009',
'first Monday of 1900',
);
print for map {
my $date = UnixDate($_, "%A, %B %d, %Y");
sprintf( "%-30s : %-30s\n", $_, $date || 'stumped' );
} @dates;
:
C:\Temp> d
today : Wednesday, August 12, 2009
Tuesday : Tuesday, August 11, 2009
this Tuesday : stumped
next Tuesday : Tuesday, August 18, 2009
previous Tuesday : Tuesday, August 11, 2009
Friday : Friday, August 14, 2009
this Friday : stumped
first Tuesday of August 2009 : Tuesday, August 04, 2009
first Monday of 1900 : Monday, January 01, 1900