aboutsummaryrefslogtreecommitdiff
path: root/challenge-138/abigail/ruby
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-11-14 13:03:11 +0100
committerAbigail <abigail@abigail.be>2021-11-14 13:03:11 +0100
commitc1db8bac0eaafcc7e7c94d712ce24dc69b776c53 (patch)
tree76f34f10adc27d237e343671818fe451490f0906 /challenge-138/abigail/ruby
parent14510de14e1f435b1439c451a2fa5cb9971a7c78 (diff)
downloadperlweeklychallenge-club-c1db8bac0eaafcc7e7c94d712ce24dc69b776c53.tar.gz
perlweeklychallenge-club-c1db8bac0eaafcc7e7c94d712ce24dc69b776c53.tar.bz2
perlweeklychallenge-club-c1db8bac0eaafcc7e7c94d712ce24dc69b776c53.zip
Solutions for week 138 in 14 languages.
Diffstat (limited to 'challenge-138/abigail/ruby')
-rw-r--r--challenge-138/abigail/ruby/ch-1.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/challenge-138/abigail/ruby/ch-1.rb b/challenge-138/abigail/ruby/ch-1.rb
new file mode 100644
index 0000000000..2489b2c18b
--- /dev/null
+++ b/challenge-138/abigail/ruby/ch-1.rb
@@ -0,0 +1,41 @@
+#!/usr/bin/ruby
+
+#
+# See ../README.md
+#
+
+#
+# Run as: ruby ch-1.rb < input-file
+#
+
+lookup = [
+ [261, 261, 260, 260, 261, 261, 261],
+ [262, 262, 261, 260, 261, 262, 262],
+]
+
+$sunday = 0
+$monday = 1
+$tuesday = 2
+$wednesday = 3
+$thursday = 4
+$friday = 5
+$saturday = 6
+
+def doomsday (year)
+ anchor = [$tuesday, $sunday, $friday, $wednesday][(year / 100) % 4]
+ y = year % 100
+ return (((y / 12) + (y % 12) + ((y % 12) / 4)) + anchor) % 7
+end
+
+def is_leap (year)
+ if (year % 400 == 0) || (year % 4 == 0) && (year % 100 != 0) then
+ return 1
+ end
+ return 0
+end
+
+ARGF . each_line do
+ | year |
+ year = year . to_i
+ puts (lookup [is_leap year] [doomsday year])
+end