Repository navigation
Expand file tree
/
Copy pathroman-time.js
More file actions
73 lines (67 loc) · 2.18 KB
/
Copy pathroman-time.js
File metadata and controls
73 lines (67 loc) · 2.18 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
var hours = parseInt(process.argv[2]);
var minutes = parseInt(process.argv[3]);
var myDozensDict = ['-', 'X', 'XX', 'XXX', 'XL', 'L']
var myUnitsDict = ['-', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX']
var romanToASCIIDict = {
roman: ['-', 'I', 'V', 'X', 'L', ':'],
ASCII: [
[' ', ' ', ' @@@ ', ' @@@ ', ' ', ' '],
[' @@@@@', ' @ ', ' @ ', ' @ ', ' @ ', ' @@@@@'],
[' @ @', ' @ @', ' @ @', ' @ @', ' @ @ ', ' @ '],
[' @ @', ' @ @', ' @ @ ', ' @@@ ', ' @ @', ' @ @'],
[' @ ', ' @ ', ' @ ', ' @ ', ' @ ', ' @@@@@'],
[' ', ' ', ' @ ', ' ', ' @ ', ' ']
]
};
function getRomanNumber(number) {
if (number < 10) {
var romanNumber = '';
romanNumber += myUnitsDict[number];
return romanNumber;
}
else if(number / 10 != 0 && number % 10 == 0) {
var romanNumber = '';
romanNumber += myDozensDict[number.toString()[0]];
return romanNumber;
}
else {
var romanNumber = '';
romanNumber += myDozensDict[number.toString()[0]];
romanNumber += myUnitsDict[number.toString()[1]];
return romanNumber;
}
}
function romanToASCII (romanTime) {
var resultArray = ['', '', '', '', '', ''];
for (var symbol = 0, len = romanTime.length; symbol < len; symbol++) {
var index = romanToASCIIDict.roman.indexOf(romanTime[symbol]);
for (var line = 0, l = resultArray.length; line < l; line++) {
resultArray[line] = resultArray[line] + romanToASCIIDict.ASCII[index][line] ;
}
};
for (var resultLine = 0, len = resultArray.length; resultLine < len; resultLine++) {
var line = '';
for (var index = 0, l = resultArray[0].length; index < l; index++) {
line += resultArray[resultLine][index];
}
console.log(line);
}
}
function isDataCorrect () {
return (!isNaN(hours) && !isNaN(minutes)
&& hours > -1 && hours < 25 && minutes > -1 && minutes < 60)
}
function getRomanTime(hours, minutes) {
if (isDataCorrect()) {
var romanTime = '';
romanTime += getRomanNumber(hours);
romanTime += ':';
romanTime += getRomanNumber(minutes);
return romanTime;
}
else {
console.log('Время указано не верно');
process.exit(1);
}
}
romanToASCII(getRomanTime(hours, minutes));