aboutsummaryrefslogtreecommitdiff
path: root/challenge-137
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-137')
-rw-r--r--challenge-137/abigail/README.md6
-rw-r--r--challenge-137/abigail/node/ch-1a.js37
2 files changed, 41 insertions, 2 deletions
diff --git a/challenge-137/abigail/README.md b/challenge-137/abigail/README.md
index 49fca86bcd..b6288d452d 100644
--- a/challenge-137/abigail/README.md
+++ b/challenge-137/abigail/README.md
@@ -9,10 +9,12 @@
* [Go](go/ch-1.go)
* [Java](java/ch-1.java)
* [Lua](lua/ch-1.lua)
-* [Node.js](node/ch-1.js)
+* Node.js
+ * [Using look-up](node/ch-1.js)
+ * [Using Doomsday values](node/ch-1a.js)
* [Pascal](pascal/ch-1.p)
* Perl
- * [Using loop-up](perl/ch-1.pl)
+ * [Using look-up](perl/ch-1.pl)
* [Using Doomsday values](perl/ch-1a.pl)
* [Python](python/ch-1.py)
* [R](r/ch-1.r)
diff --git a/challenge-137/abigail/node/ch-1a.js b/challenge-137/abigail/node/ch-1a.js
new file mode 100644
index 0000000000..e0e8d46341
--- /dev/null
+++ b/challenge-137/abigail/node/ch-1a.js
@@ -0,0 +1,37 @@
+#!/usr/local/bin/node
+
+//
+// See ../README.md
+//
+
+//
+// Run as: node ch-1a.js < input-file
+//
+
+let SUNDAY = 0
+let MONDAY = 1
+let TUESDAY = 2
+let WEDNESDAY = 3
+let THURSDAY = 4
+let FRIDAY = 5
+let SATURDAY = 6
+
+function doomsday (year) {
+ let anchor = [TUESDAY, SUNDAY, FRIDAY, WEDNESDAY]
+ [Math . floor (year / 100) % 4]
+ let y = year % 100
+ let doomsday = ((Math . floor (y / 12) + (y % 12) +
+ Math . floor ((y % 12) / 4)) + anchor) % 7
+ return (doomsday)
+}
+
+function is_leap (year) {
+ return ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
+}
+
+for (year = 1900; year <= 2100; year ++) {
+ let dec_31 = (doomsday (year) + 31 - 12) % 7
+ if (dec_31 == THURSDAY || dec_31 == FRIDAY && is_leap (year)) {
+ console . log (year)
+ }
+}