aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-02-18 17:25:10 +0100
committerAbigail <abigail@abigail.be>2021-02-18 17:25:10 +0100
commitb97eda202060a1a635f43117fd185c3642971ba3 (patch)
tree39117cb71d039d2fb3cf571c72b5e7b27ab66534
parent3de02145ce6ede5f1f97fa009d39c72f36b77f1d (diff)
downloadperlweeklychallenge-club-b97eda202060a1a635f43117fd185c3642971ba3.tar.gz
perlweeklychallenge-club-b97eda202060a1a635f43117fd185c3642971ba3.tar.bz2
perlweeklychallenge-club-b97eda202060a1a635f43117fd185c3642971ba3.zip
Node.js solution for week 100, part 1
-rw-r--r--challenge-100/abigail/README.md1
-rw-r--r--challenge-100/abigail/node/ch-1.js32
2 files changed, 33 insertions, 0 deletions
diff --git a/challenge-100/abigail/README.md b/challenge-100/abigail/README.md
index 7e4cf910e0..80fce6a337 100644
--- a/challenge-100/abigail/README.md
+++ b/challenge-100/abigail/README.md
@@ -23,6 +23,7 @@ Output: 07:15 pm or 07:15pm
* [Befunge-93](befunge-93/ch-1.bf93)
* [C](c/ch-1.c)
* [Lua](lua/ch-1.lua)
+* [Node.js](node/ch-1.js)
* [Perl](perl/ch-1.pl)
### Blog
diff --git a/challenge-100/abigail/node/ch-1.js b/challenge-100/abigail/node/ch-1.js
new file mode 100644
index 0000000000..d513e691e1
--- /dev/null
+++ b/challenge-100/abigail/node/ch-1.js
@@ -0,0 +1,32 @@
+#!/usr/local/bin/node
+
+//
+// See ../README.md
+//
+
+//
+// Run as: node ch-1.js < input-file
+//
+
+let printf = require ("printf")
+
+require ('readline')
+. createInterface ({input: process . stdin})
+. on ('line', _ => {
+ //
+ // Parse data
+ //
+ let [m, hour, minute, ampm] = _ . match (/([0-9]+):([0-9]+)\s*([ap]?)/)
+
+ let new_ampm = ampm == "" ? hour >= 12 ? "pm" : "am" : ""
+
+ hour = hour % 12
+ if (ampm == "" && hour == 0) {
+ hour = 12
+ }
+ if (ampm == "p") {
+ hour += 12
+ }
+
+ printf (process . stdout, "%02d:%02d%s\n", hour, minute, new_ampm)
+});