aboutsummaryrefslogtreecommitdiff
path: root/challenge-187/roger-bell-west/ruby/ch-1.rb
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-187/roger-bell-west/ruby/ch-1.rb')
-rwxr-xr-xchallenge-187/roger-bell-west/ruby/ch-1.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/challenge-187/roger-bell-west/ruby/ch-1.rb b/challenge-187/roger-bell-west/ruby/ch-1.rb
new file mode 100755
index 0000000000..fa83e9dad2
--- /dev/null
+++ b/challenge-187/roger-bell-west/ruby/ch-1.rb
@@ -0,0 +1,44 @@
+#! /usr/bin/ruby
+
+require 'test/unit'
+
+require 'time'
+
+def s2date(ds)
+ /^(\d+)\-(\d+)$/ =~ ds
+ return Time.new(2022, $2, $1, 0, 0, 0, "+0000")
+end
+
+def daystogether(a, b)
+ starts = [s2date(a[0]), s2date(b[0])].sort
+ ends = [s2date(a[1]), s2date(b[1])].sort
+ if ends[0] >= starts[1] then
+ return (ends[0]-starts[1]).to_i/86400+1
+ else
+ return 0
+ end
+end
+
+class TestDaystogether < Test::Unit::TestCase
+
+ def test_ex1
+ assert_equal(4,
+ daystogether(["12-01", "20-01"], ["15-01", "18-01"]))
+ end
+
+ def test_ex2
+ assert_equal(0,
+ daystogether(["02-03", "12-03"], ["13-03", "14-03"]))
+ end
+
+ def test_ex3
+ assert_equal(2,
+ daystogether(["02-03", "12-03"], ["11-03", "15-03"]))
+ end
+
+ def test_ex4
+ assert_equal(4,
+ daystogether(["30-03", "05-04"], ["28-03", "02-04"]))
+ end
+
+end