aboutsummaryrefslogtreecommitdiff
path: root/challenge-137/abigail/node
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-11-03 18:06:09 +0100
committerAbigail <abigail@abigail.be>2021-11-03 18:06:09 +0100
commitd611eaafd3c04fb551287ac33cdd33d9afd2fe54 (patch)
treeeafe313937d901fa31f6e101f4ab9279e3622295 /challenge-137/abigail/node
parent172d3d442f2e84abb4a29454124d00d50cdae72a (diff)
downloadperlweeklychallenge-club-d611eaafd3c04fb551287ac33cdd33d9afd2fe54.tar.gz
perlweeklychallenge-club-d611eaafd3c04fb551287ac33cdd33d9afd2fe54.tar.bz2
perlweeklychallenge-club-d611eaafd3c04fb551287ac33cdd33d9afd2fe54.zip
Alternative Node.js solution for week 137, part 1
Diffstat (limited to 'challenge-137/abigail/node')
-rw-r--r--challenge-137/abigail/node/ch-1a.js37
1 files changed, 37 insertions, 0 deletions
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)
+ }
+}