forked from urfu-2017/javascript-task-1
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathroman-time.js
More file actions
26 lines (25 loc) · 861 Bytes
/
roman-time.js
File metadata and controls
26 lines (25 loc) · 861 Bytes
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
'use strict';
/**
* @param {String} time – время в формате HH:MM (например, 09:05)
* @returns {String} – время римскими цифрами (IX:V)
*/
function romanTime(time) {
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("");
var min = parseInt(tim[1], 10)
min = String(min).split("");
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;