Weekly Challenge 183
Back after a short break :)
Task 1: Unique Array
Task
You are given list of arrayrefs.
Write a script to remove the duplicate arrayrefs from the given list.
My solutions
The logic in the Python and Perl solutions is basically the same. For each item in the outer list, see if it has appeared earlier in the list. In Python comparing two lists works as expected. I don't believe there is a way to do this in Perl, so I wrote an function called same_array
to see if two arrays are the same.
Examples
$ ./ch-1.py "[[1,2], [3,4], [5,6], [1,2]]"
[1, 2], [3, 4], [5, 6]
$ ./ch-1.py "[[9,1], [3,7], [2,5], [2,5]]"
[9, 1], [3, 7], [2, 5]
Task 2: Date Difference
Task
You are given two dates, $date1
and $date2
in the format YYYY-MM-DD
.
Write a script to find the difference between the given dates in terms on years and days only.
My solutions
This is a little tricky. Date math is never fun. So off the bat, I'll note this is not time zone aware. That really would only be an issue for the few countries that skipped a day in December 2011.
The basic logic goes as follows:
- Make sure that
date2
is later thandate1
. The challenge does not mention in what order the date is specified. - Subtract the difference in the calendar years between date2 and date1, and store it as
years
. - If date2 is earlier in the year than date1, then subtract 1 from the
years
value. - Calculate the number of days between
date2 - $years year(s)
anddate1
. For Python, this is done using the dateutils module. In Perl, I use the Date::Calc module. - Print the result. I'm having a bit of a brain fart on how to do this the correct way. I'm sure after I submit my pull request, I'll figure this out :)
Examples
$ ./ch-2.py 2019-02-10 2022-11-01
3 years 264 days
$ ./ch-2.py 2020-09-15 2022-03-29
1 year 195 days
$ ./ch-2.py 2019-12-31 2020-01-01
1 day
$ ./ch-2.py 2019-12-31 2019-12-01
30 days
Top comments (0)