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
38 lines (34 loc) · 1.32 KB
/
roman-time.js
File metadata and controls
38 lines (34 loc) · 1.32 KB
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
38
'use strict';
/**
* @param {String} time – время в формате HH:MM (например, 09:05)
* @returns {String} – время римскими цифрами (IX:V)
**/
function romanTime(time) {
var reg = new RegExp('^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$');
if (!reg.test(time)) {
throw new TypeError('Wrong format');
}
var arr = time.split(':');
var hourArab = parseInt(arr[0]);
var minuteArab = parseInt(arr[1]);
var arrR = ['N', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X',
'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX',
'XXI', 'XXII', 'XXIII', 'XXIV', 'XXV', 'XXVI', 'XXVII', 'XXVIII', 'XXIX', 'XXX',
'XXXI', 'XXXII', 'XXXIII', 'XXXIV', 'XXXV', 'XXXVI', 'XXXVII', 'XXXVIII', 'XXXIX', 'XL',
'XLI', 'XLII', 'XLIII', 'XLIV', 'XLV', 'XLVI', 'XLVII', 'XLVIII', 'XLIX', 'L'];
var hourRoman = '';
var minuteRoman = '';
var remain = '';
hourRoman = arrR[hourArab];
function toDoRomanMinute(number) {
if (number > 50) {
remain = arrR[number - 50];
minuteRoman = 'L' + remain;
} else {
minuteRoman = arrR[number];
}
return minuteRoman;
}
return hourRoman + ':' + toDoRomanMinute(minuteArab);
}
module.exports = romanTime;