forked from urfu-2016/javascript-task-1
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathroman-time.js
37 lines (27 loc) · 920 Bytes
/
roman-time.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
'use strict';
/**
* @param {String} time – время в формате HH:MM (например, 09:05)
* @returns {String} – время римскими цифрами (IX:V)
*/
function convertToRoman(arab) {
var arrDec = ['', 'X', 'XX', 'XXX', 'XL', 'L'];
var arrUnit = ['', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];
var roman;
if (arab === 0) {
roman = 'N';
} else {
roman = arrDec[Math.floor(arab / 10)] + arrUnit[arab % 10];
}
return roman;
}
function romanTime(time) {
if ((time.length !== 5) || (time.match(/([0-1]\d|2[0-3]):[0-5]\d/)) === null) {
throw new TypeError("Wrong format of input");
}
var arrSymb = time.split(':');
var hour = parseInt(arrSymb[0], 10);
var min = parseInt(arrSymb[1], 10);
time = convertToRoman(hour) + ':' + convertToRoman(min);
return time;
}
module.exports = romanTime;