aboutsummaryrefslogtreecommitdiff
path: root/challenge-175/mohammad-anwar/python
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-07-26 01:41:15 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-07-26 01:41:15 +0100
commita7dbbf1044ad31aeb5219aa10f1b06e4703aa641 (patch)
treeaccb6b5c2a4ae6c8cbd6b4a07fe73a06e3753452 /challenge-175/mohammad-anwar/python
parentde132b0febe248f7b9b47aaffea4af0a74ef6f12 (diff)
downloadperlweeklychallenge-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.py49
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()