aboutsummaryrefslogtreecommitdiff
path: root/challenge-187/roger-bell-west/python/ch-1.py
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2022-10-24 17:44:04 +0800
committer冯昶 <fengchang@novel-supertv.com>2022-10-24 17:44:04 +0800
commit7783ecb7dad2ae5ea3d3022a13e3901c196c4154 (patch)
treefa408d0b19c541602d81799c8a13eea61df2cb8f /challenge-187/roger-bell-west/python/ch-1.py
parenta406c6935f88c7afa04a707a2611ebe4fe4eadae (diff)
parentbb06570f6b1634ca14bfd08927f3bfc6c052c494 (diff)
downloadperlweeklychallenge-club-7783ecb7dad2ae5ea3d3022a13e3901c196c4154.tar.gz
perlweeklychallenge-club-7783ecb7dad2ae5ea3d3022a13e3901c196c4154.tar.bz2
perlweeklychallenge-club-7783ecb7dad2ae5ea3d3022a13e3901c196c4154.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-187/roger-bell-west/python/ch-1.py')
-rwxr-xr-xchallenge-187/roger-bell-west/python/ch-1.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/challenge-187/roger-bell-west/python/ch-1.py b/challenge-187/roger-bell-west/python/ch-1.py
new file mode 100755
index 0000000000..b7be1cd5c4
--- /dev/null
+++ b/challenge-187/roger-bell-west/python/ch-1.py
@@ -0,0 +1,43 @@
+#! /usr/bin/python3
+
+import unittest
+
+from datetime import date, timedelta
+import re
+
+def s2date(ds):
+ dm = re.findall(r"\d+", ds)
+ if len(dm) == 2:
+ return date(2022, int(dm[1]), int(dm[0]))
+
+def daystogether(a, b):
+ starts = sorted([s2date(a[0]), s2date(b[0])])
+ ends = sorted([s2date(a[1]), s2date(b[1])])
+ if ends[0] >= starts[1]:
+ return (ends[0]-starts[1]).days+1
+ else:
+ return 0
+
+class TestDaystogether(unittest.TestCase):
+
+ def test_ex1(self):
+ self.assertEqual(daystogether(["12-01", "20-01"], ["15-01", "18-01"]),
+ 4,
+ 'example 1')
+
+ def test_ex2(self):
+ self.assertEqual(daystogether(["02-03", "12-03"], ["13-03", "14-03"]),
+ 0,
+ 'example 2')
+
+ def test_ex3(self):
+ self.assertEqual(daystogether(["02-03", "12-03"], ["11-03", "15-03"]),
+ 2,
+ 'example 3')
+
+ def test_ex4(self):
+ self.assertEqual(daystogether(["30-03", "05-04"], ["28-03", "02-04"]),
+ 4,
+ 'example 4')
+
+unittest.main()