diff options
| author | Abigail <abigail@abigail.be> | 2021-11-03 18:06:09 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-11-03 18:06:09 +0100 |
| commit | d611eaafd3c04fb551287ac33cdd33d9afd2fe54 (patch) | |
| tree | eafe313937d901fa31f6e101f4ab9279e3622295 /challenge-137 | |
| parent | 172d3d442f2e84abb4a29454124d00d50cdae72a (diff) | |
| download | perlweeklychallenge-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')
| -rw-r--r-- | challenge-137/abigail/README.md | 6 | ||||
| -rw-r--r-- | challenge-137/abigail/node/ch-1a.js | 37 |
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) + } +} |
