diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-07-26 01:41:15 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-07-26 01:41:15 +0100 |
| commit | a7dbbf1044ad31aeb5219aa10f1b06e4703aa641 (patch) | |
| tree | accb6b5c2a4ae6c8cbd6b4a07fe73a06e3753452 /challenge-175/mohammad-anwar/python | |
| parent | de132b0febe248f7b9b47aaffea4af0a74ef6f12 (diff) | |
| download | perlweeklychallenge-club-a7dbbf1044ad31aeb5219aa10f1b06e4703aa641.tar.gz perlweeklychallenge-club-a7dbbf1044ad31aeb5219aa10f1b06e4703aa641.tar.bz2 perlweeklychallenge-club-a7dbbf1044ad31aeb5219aa10f1b06e4703aa641.zip | |
- Added Perl solution to the task "Last Sunday".
Diffstat (limited to 'challenge-175/mohammad-anwar/python')
| -rw-r--r-- | challenge-175/mohammad-anwar/python/ch-1.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/challenge-175/mohammad-anwar/python/ch-1.py b/challenge-175/mohammad-anwar/python/ch-1.py new file mode 100644 index 0000000000..9fee21d1c1 --- /dev/null +++ b/challenge-175/mohammad-anwar/python/ch-1.py @@ -0,0 +1,49 @@ +#!/usr/bin/python3 + +''' + +Week 175: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-175 + +Task #1: Last Sunday + + Write a script to list Last Sunday of every month in the given year. + +''' + +import unittest +from datetime import date, timedelta +from dateutil.relativedelta import relativedelta + +def allLastSundayOf(year): + ls = [] + for month in range(1, 13): + ls.append(lastSundayOf(month, year)) + + return ls + +def lastSundayOf(month, year): + d = date(year, month, 1) + relativedelta(months = 1) - timedelta(days = 1) + dow = d.isoweekday() + + if dow != 7: + d = d - timedelta(days = dow) + + return d.isoformat() + +# +# +# Unit test class + +class TestLastSunday(unittest.TestCase): + def test_example(self): + exp = [ + "2022-01-30", "2022-02-27", "2022-03-27", "2022-04-24", + "2022-05-29", "2022-06-26", "2022-07-31", "2022-08-28", + "2022-09-25", "2022-10-30", "2022-11-27", "2022-12-25", + ] + got = allLastSundayOf(2022) + self.assertEqual(exp, got) + +unittest.main() |
