commit bf5c3e2453040554e823420d8a36b61d5fec2ac0
parent 14ba14e9460062b85315206834827b9125d3654b
Author: Samir Parikh <noreply@samirparikh.com>
Date: Wed, 27 Apr 2022 14:44:40 +0000
get some tests to pass
Diffstat:
1 file changed, 33 insertions(+), 1 deletion(-)
diff --git a/meetup/Meetup.pm b/meetup/Meetup.pm
@@ -4,9 +4,41 @@ use warnings;
use Exporter qw<import>;
our @EXPORT_OK = qw<meetup>;
+#use Data::Dumper;
+use Date::Calc qw( Nth_Weekday_of_Month_Year );
+
sub meetup {
my ($desc) = @_;
- return undef;
+ my %input;
+ my %day_number;
+ my %month_number;
+ my %week_number;
+ @input{ qw( week day_of_week of month year ) } = split / /, $desc; #hash slice
+ @day_number{ qw(
+ Monday Tuesday Wednesday Thursday Friday Saturday Sunday
+ ) } = ( 1 .. 7 );
+ @month_number{ qw(
+ January February March April May June
+ July August September October November December
+ ) } = ( 1 .. 12 );
+ @week_number{ qw(
+ First Second Third Fourth Fifth Last Teenth
+ ) } = ( 1 .. 7 );
+ #print Dumper \%input;
+ print "$desc\n";
+ print "year = ", $input{ year }, "\n";
+ print "month number = ", $month_number{ $input{ month } }, "\n";
+ print "day number = ", $day_number{ $input{ day_of_week } }, "\n";
+ print "week number = ", $week_number{ $input{ week } }, "\n";
+ #return undef;
+ my ($year, $month, $day) =
+ Nth_Weekday_of_Month_Year(
+ $input{ year },
+ $month_number{ $input{ month } },
+ $day_number{ $input{ day_of_week } },
+ $week_number{ $input{ week } }
+ ) if $week_number{ $input{ week } } < 6;
+ return"$year-$month-$day";
}
1;