From fbcb4f8cf7e3ae3d4faabdf790cc5a8fdf4ca52a Mon Sep 17 00:00:00 2001 From: Xotab <32295991+Xotab@users.noreply.github.com> Date: Thu, 5 Oct 2017 16:05:43 +0500 Subject: [PATCH 1/2] 1 --- roman-time.js | 113 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 112 insertions(+), 1 deletion(-) diff --git a/roman-time.js b/roman-time.js index f66353e..71b1f1b 100644 --- a/roman-time.js +++ b/roman-time.js @@ -5,7 +5,118 @@ * @returns {String} – время римскими цифрами (IX:V) */ function romanTime(time) { - // Немного авторского кода и замечательной магии + var tim = time.splitsplit(':'); + var hr = parseInt(tim[0], 10); + hr = String(hr).split(""); + switch (Number(hr[0])) { + case 0: + hr[0] = ''; + break; + case 1: + hr[0] = 'X'; + break; + case 2: + hr[0] = 'XX'; + break; + default: + TypeError; + } + switch (Number(hr[1])) { + case 0: + hr[1] = ''; + break; + case 1: + hr[1] = 'I'; + break; + case 2: + hr[1] = 'II'; + break; + case 3: + hr[1] = 'III'; + break; + case 4: + hr[1] = 'IV'; + break; + case 5: + hr[1] = 'V'; + break; + case 6: + hr[1] = 'VI'; + break; + case 7: + hr[1] = 'VII'; + break; + case 8: + hr[1] = 'IIX'; + break; + case 9: + hr[1] = 'IX'; + break; + + default: + TypeError; + } + + var min = parseInt(tim[1], 10) + min = String(min).split(""); + switch (Number(min[0])) { + case 0: + min[0] = ''; + break; + case 1: + min[0] = 'X'; + break; + case 2: + min[0] = 'XX'; + break; + case 3: + min[0] = 'XXX'; + break; + case 4: + min[0] = 'XL'; + break; + case 5: + min[0] = 'L'; + break; + + default: + TypeError; + } + switch (Number(min[1])) { + case 0: + min[1] = ''; + break; + case 1: + min[1] = 'I'; + break; + case 2: + min[1] = 'II'; + break; + case 3: + min[1] = 'III'; + break; + case 4: + min[1] = 'IV'; + break; + case 5: + min[1] = 'V'; + break; + case 6: + min[1] = 'VI'; + break; + case 7: + min[1] = 'VII'; + break; + case 8: + min[1] = 'IIX'; + break; + case 9: + min[1] = 'IX'; + break; + + default: + TypeError; + } return time; } From 9d436fe79f416b7be29c118463762129c60901cb Mon Sep 17 00:00:00 2001 From: Xotab <32295991+Xotab@users.noreply.github.com> Date: Thu, 5 Oct 2017 17:54:53 +0500 Subject: [PATCH 2/2] =?UTF-8?q?=D0=A0=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roman-time.js | 121 +++++--------------------------------------------- 1 file changed, 12 insertions(+), 109 deletions(-) diff --git a/roman-time.js b/roman-time.js index 71b1f1b..67f9ce7 100644 --- a/roman-time.js +++ b/roman-time.js @@ -5,119 +5,22 @@ * @returns {String} – время римскими цифрами (IX:V) */ function romanTime(time) { - var tim = time.splitsplit(':'); + var dec = ['N', 'X', 'XX', 'XXX', 'IL', 'L']; + var unit = ['N', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'IIX', 'IX']; + var re = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/; + if (!re.test(time)) { + throw new TypeError('TimeError'); + } + var tim = time.split(':'); var hr = parseInt(tim[0], 10); hr = String(hr).split(""); - switch (Number(hr[0])) { - case 0: - hr[0] = ''; - break; - case 1: - hr[0] = 'X'; - break; - case 2: - hr[0] = 'XX'; - break; - default: - TypeError; - } - switch (Number(hr[1])) { - case 0: - hr[1] = ''; - break; - case 1: - hr[1] = 'I'; - break; - case 2: - hr[1] = 'II'; - break; - case 3: - hr[1] = 'III'; - break; - case 4: - hr[1] = 'IV'; - break; - case 5: - hr[1] = 'V'; - break; - case 6: - hr[1] = 'VI'; - break; - case 7: - hr[1] = 'VII'; - break; - case 8: - hr[1] = 'IIX'; - break; - case 9: - hr[1] = 'IX'; - break; - - default: - TypeError; - } - var min = parseInt(tim[1], 10) min = String(min).split(""); - switch (Number(min[0])) { - case 0: - min[0] = ''; - break; - case 1: - min[0] = 'X'; - break; - case 2: - min[0] = 'XX'; - break; - case 3: - min[0] = 'XXX'; - break; - case 4: - min[0] = 'XL'; - break; - case 5: - min[0] = 'L'; - break; - - default: - TypeError; - } - switch (Number(min[1])) { - case 0: - min[1] = ''; - break; - case 1: - min[1] = 'I'; - break; - case 2: - min[1] = 'II'; - break; - case 3: - min[1] = 'III'; - break; - case 4: - min[1] = 'IV'; - break; - case 5: - min[1] = 'V'; - break; - case 6: - min[1] = 'VI'; - break; - case 7: - min[1] = 'VII'; - break; - case 8: - min[1] = 'IIX'; - break; - case 9: - min[1] = 'IX'; - break; - - default: - TypeError; - } + hr[0] = dec[Number(hr[0])]; + hr[1] = unit[Number(hr[1])]; + min[0] = dec[Number(min[0])]; + min[1] = unit[Number(min[0])]; + time = hr[0] + hr[1] + ":" + min[0] + min[1]; return time; } - module.exports = romanTime;