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/abigail/node | |
| 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/abigail/node')
| -rw-r--r-- | challenge-137/abigail/node/ch-1a.js | 37 |
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) + } +} |
