From b08afa663de035c16c3027f476ad46eb413cd8b7 Mon Sep 17 00:00:00 2001 From: SergeyIstomin96 Date: Sat, 15 Oct 2016 12:38:36 +0500 Subject: [PATCH 01/11] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=8B=D1=82=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roman-time.js | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/roman-time.js b/roman-time.js index f66353e..d78a963 100644 --- a/roman-time.js +++ b/roman-time.js @@ -5,8 +5,56 @@ * @returns {String} – время римскими цифрами (IX:V) */ function romanTime(time) { - // Немного авторского кода и замечательной магии + String time2 = time; + // try { + // throw new TypeError('Неверное время'); + // } catch (e) { + // console.log(e.name+':'+e.message) + // } + var h = 0; + var i = 0; + while ( time2[i]!=':' ){ + h += time2[i]; + i++; + } + for (++i; i Date: Sat, 15 Oct 2016 22:19:00 +0500 Subject: [PATCH 02/11] =?UTF-8?q?=D0=92=D1=82=D0=BE=D1=80=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=8B=D1=82=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roman-time.js | 103 +++++++++++++++++++++++++++----------------------- 1 file changed, 56 insertions(+), 47 deletions(-) diff --git a/roman-time.js b/roman-time.js index d78a963..5d13b31 100644 --- a/roman-time.js +++ b/roman-time.js @@ -4,57 +4,66 @@ * @param {String} time – время в формате HH:MM (например, 09:05) * @returns {String} – время римскими цифрами (IX:V) */ -function romanTime(time) { - String time2 = time; - // try { - // throw new TypeError('Неверное время'); - // } catch (e) { - // console.log(e.name+':'+e.message) - // } - var h = 0; - var i = 0; - while ( time2[i]!=':' ){ - h += time2[i]; - i++; +function romanTime(time){ + try{ + var time2 = String(time); + var h = 0; + var i = 0; + while ( time2[i]!=':' ){ + h += time2[i]; + i++; + } + var m = 0; + for (++i; i23 || h<0) throw new TypeError('Неверное время'); + m = Number(m); + if (m==NaN || m>59 || m<0) throw new TypeError('Неверное время'); + h = to_roman(h); + m = to_roman(m); + time = h+':'+m; + return time; } - for (++i; i=50 ){ //50-59 + num -= 50; + res = 'L'; } - return str; + else if ( num>=10 ){ //10-49 + var tens = (num - num%10)/10; + for (var j=0; j=5 ){ + if ( num==9 ){ + res += 'IX'; + num -= 9; + } + else { + res += 'V'; + num -= 5; + } + } + else if ( num==4 ){ + res += 'IV'; + num -= 4; + } + // only 123 + for (var j=0; j Date: Sat, 15 Oct 2016 23:58:08 +0500 Subject: [PATCH 03/11] =?UTF-8?q?=D0=92=D1=82=D0=BE=D1=80=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=8B=D1=82=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roman-time.js | 116 ++++++++++++++++++++++++++------------------------ 1 file changed, 60 insertions(+), 56 deletions(-) diff --git a/roman-time.js b/roman-time.js index 5d13b31..182e140 100644 --- a/roman-time.js +++ b/roman-time.js @@ -4,66 +4,70 @@ * @param {String} time – время в формате HH:MM (например, 09:05) * @returns {String} – время римскими цифрами (IX:V) */ -function romanTime(time){ - try{ - var time2 = String(time); - var h = 0; - var i = 0; - while ( time2[i]!=':' ){ - h += time2[i]; - i++; - } - var m = 0; - for (++i; i23 || h<0) throw new TypeError('Неверное время'); - m = Number(m); - if (m==NaN || m>59 || m<0) throw new TypeError('Неверное время'); - h = to_roman(h); - m = to_roman(m); - time = h+':'+m; - return time; - } +function romanTime(time) { + try { + var time2 = String(time); + var h = 0; + var i = 0; + while (time2[i] !== ':') { + h += time2[i]; + i++; +} + var m = 0; + for ( ++i; i23 || h<0) { + throw new TypeError('Неверное время'); +} + m = Number(m); + if (m==NaN || m>59 || m<0) { + throw new TypeError('Неверное время'); +} + h = to_roman(h); + m = to_roman(m); + time = h + ':' + m; +} catch (err){ - console.log(err.name+':'+err.message) + console.log(err.name + ':' + err.message) } + return time; } function to_roman (num){ - var res = ''; - if (num==0) return 'N'; - if ( num>=50 ){ //50-59 - num -= 50; - res = 'L'; - } - else if ( num>=10 ){ //10-49 - var tens = (num - num%10)/10; - for (var j=0; j=5 ){ - if ( num==9 ){ - res += 'IX'; - num -= 9; - } - else { - res += 'V'; - num -= 5; - } - } - else if ( num==4 ){ - res += 'IV'; - num -= 4; - } - // only 123 - for (var j=0; j=50) { //50-59 + num -= 50; + res = 'L'; +} + else if (num>=10) { //10-49 + var tens = (num - num%10)/10; + for (var j=0; j=5) { + if (num==9) { + res += 'IX'; + num -= 9; +} + else { + res += 'V'; + num -= 5; +} +} + else if (num==4) { + res += 'IV'; + num -= 4; +} // only 123 + for (var j=0; j Date: Sun, 16 Oct 2016 00:16:04 +0500 Subject: [PATCH 04/11] =?UTF-8?q?=D0=A7=D0=B5=D1=82=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D1=82=D0=B0=D1=8F=20=D0=BF=D0=BE=D0=BF=D1=8B=D1=82=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roman-time.js | 94 +++++++++++++++++++++++++-------------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/roman-time.js b/roman-time.js index 182e140..f2f6b00 100644 --- a/roman-time.js +++ b/roman-time.js @@ -6,29 +6,29 @@ */ function romanTime(time) { try { - var time2 = String(time); - var h = 0; - var i = 0; - while (time2[i] !== ':') { - h += time2[i]; - i++; -} - var m = 0; - for ( ++i; i23 || h<0) { - throw new TypeError('Неверное время'); -} - m = Number(m); - if (m==NaN || m>59 || m<0) { - throw new TypeError('Неверное время'); -} - h = to_roman(h); - m = to_roman(m); - time = h + ':' + m; -} + var time2 = String(time); + var h = 0; + var i = 0; + while (time2[i] !== ':') { + h += time2[i]; + i++; + } + var m = 0; + for (++i; i23 || h<0) { + throw new TypeError('Неверное время'); + } + m = Number(m); + if (m==NaN || m>59 || m<0) { + throw new TypeError('Неверное время'); + } + h = to_roman(h); + m = to_roman(m); + time = h + ':' + m; + } catch (err){ console.log(err.name + ':' + err.message) } @@ -38,35 +38,35 @@ function romanTime(time) { function to_roman (num){ var res = ''; if (num==0) { - return 'N'; -} + return 'N'; + } if (num>=50) { //50-59 - num -= 50; - res = 'L'; -} + num -= 50; + res = 'L'; + } else if (num>=10) { //10-49 - var tens = (num - num%10)/10; - for (var j=0; j=5) { - if (num==9) { - res += 'IX'; - num -= 9; -} - else { - res += 'V'; - num -= 5; -} -} + if (num==9) { + res += 'IX'; + num -= 9; + } + else { + res += 'V'; + num -= 5; + } + } else if (num==4) { - res += 'IV'; - num -= 4; -} // only 123 + res += 'IV'; + num -= 4; + } // only 123 for (var j=0; j Date: Sun, 16 Oct 2016 00:41:26 +0500 Subject: [PATCH 05/11] =?UTF-8?q?=D0=9F=D1=8F=D1=82=D0=B0=D1=8F=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BF=D1=8B=D1=82=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roman-time.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/roman-time.js b/roman-time.js index f2f6b00..7b9c851 100644 --- a/roman-time.js +++ b/roman-time.js @@ -7,15 +7,16 @@ function romanTime(time) { try { var time2 = String(time); + time = ''; var h = 0; var i = 0; while (time2[i] !== ':') { - h += time2[i]; - i++; + h += time2[i]; + i++; } var m = 0; for (++i; i23 || h<0) { @@ -29,13 +30,13 @@ function romanTime(time) { m = to_roman(m); time = h + ':' + m; } - catch (err){ + catch (err) { console.log(err.name + ':' + err.message) } return time; } -function to_roman (num){ +function to_roman (num) { var res = ''; if (num==0) { return 'N'; From bff2883843cb960a86d8033c6a36f60e24bc344f Mon Sep 17 00:00:00 2001 From: SergeyIstomin96 Date: Thu, 20 Oct 2016 17:10:04 +0500 Subject: [PATCH 06/11] =?UTF-8?q?=D0=92=D1=81=D0=B5=20=D1=81=D0=BD=D0=B0?= =?UTF-8?q?=D1=87=D0=B0=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roman-time.js | 86 ++++++++++++++++----------------------------------- 1 file changed, 26 insertions(+), 60 deletions(-) diff --git a/roman-time.js b/roman-time.js index 7b9c851..dbeb61d 100644 --- a/roman-time.js +++ b/roman-time.js @@ -6,69 +6,35 @@ */ function romanTime(time) { try { - var time2 = String(time); - time = ''; - var h = 0; - var i = 0; - while (time2[i] !== ':') { - h += time2[i]; - i++; + var arab = [1, 4, 5, 9, 10, 40, 50]; + var roman = ['I','IV','V','IX','X','XL','L']; + var strs = time.split(':'); + var numTime = [parseInt(srs[0], 10), parseInt(srs[1], 10)]; + if (numTime[0].isNaN() || numTime[1].isNaN()) { + throw TypeError("Неверное время"); } - var m = 0; - for (++i; i23 || h<0) { - throw new TypeError('Неверное время'); - } - m = Number(m); - if (m==NaN || m>59 || m<0) { - throw new TypeError('Неверное время'); - } - h = to_roman(h); - m = to_roman(m); - time = h + ':' + m; } - catch (err) { + catch (err) { console.log(err.name + ':' + err.message) - } - return time; -} - -function to_roman (num) { - var res = ''; - if (num==0) { - return 'N'; - } - if (num>=50) { //50-59 - num -= 50; - res = 'L'; - } - else if (num>=10) { //10-49 - var tens = (num - num%10)/10; - for (var j=0; j=5) { - if (num==9) { - res += 'IX'; - num -= 9; - } - else { - res += 'V'; - num -= 5; - } - } - else if (num==4) { - res += 'IV'; - num -= 4; - } // only 123 - for (var j=0; j Date: Thu, 20 Oct 2016 17:21:23 +0500 Subject: [PATCH 07/11] =?UTF-8?q?=D0=92=D1=81=D0=B5=20=D1=81=D0=BD=D0=B0?= =?UTF-8?q?=D1=87=D0=B0=D0=BB=D0=B02?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roman-time.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/roman-time.js b/roman-time.js index dbeb61d..608c35e 100644 --- a/roman-time.js +++ b/roman-time.js @@ -7,34 +7,34 @@ function romanTime(time) { try { var arab = [1, 4, 5, 9, 10, 40, 50]; - var roman = ['I','IV','V','IX','X','XL','L']; + var roman = ['I', 'IV', 'V', 'IX', 'X', 'XL', 'L']; var strs = time.split(':'); - var numTime = [parseInt(srs[0], 10), parseInt(srs[1], 10)]; + var numTime = [parseInt(strs[0], 10), parseInt(strs[1], 10)]; if (numTime[0].isNaN() || numTime[1].isNaN()) { - throw TypeError("Неверное время"); + throw new TypeError('Неверное время'); } - var j = arab.length-1; - strs[0]=""; - strs[1]=""; - for (var i=0; i<2; i++) { - if (numTime[i] == 0) { - strs[i] = 'N'; - continue; - } - while (numTime[i]!=0) { + var j = arab.length - 1; + strs[0] = ''; + strs[1] = ''; + for (var i = 0; i < 2; i++) { + if (numTime[i] === 0) { + strs[i] = 'N'; + continue; + } + while (numTime[i] != 0) { if (numTime[i] <= arab[j]) { - strs[i] += romam[j]; + strs[i] += roman[j]; numTime[i] -= arab[j]; } else { j--; } } - } + } + time = numTime[0] + ':' + numTime[1]; } catch (err) { console.log(err.name + ':' + err.message) } - time = numTime[0]+':'+numTime[1]; return time; } From b0a97a8920d525ca5755ff4df85d5a0b131cca02 Mon Sep 17 00:00:00 2001 From: SergeyIstomin96 Date: Fri, 21 Oct 2016 00:34:23 +0500 Subject: [PATCH 08/11] =?UTF-8?q?=D0=9F=D0=BE=D1=85=D0=BE=D0=B6=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B8=D0=BB=D0=BE=D1=81=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roman-time.js | 61 ++++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/roman-time.js b/roman-time.js index 608c35e..f3c43ec 100644 --- a/roman-time.js +++ b/roman-time.js @@ -1,40 +1,41 @@ 'use strict'; +/** + * @param {number} num – число, в арабской системе + * @returns {String} – строку римских цифр + */ +function toRoman(num) { + var arab = [1, 4, 5, 9, 10, 40, 50]; + var roman = ['I', 'IV', 'V', 'IX', 'X', 'XL', 'L']; + var j = arab.length - 1; + var res = ''; + if (num === 0) { + res = 'N'; + } + while (num > 0) { + if (num >= arab[j]) { + res += roman[j]; + num -= arab[j]; + } + else { + j--; + } + } + return res; +} /** * @param {String} time – время в формате HH:MM (например, 09:05) * @returns {String} – время римскими цифрами (IX:V) */ function romanTime(time) { - try { - var arab = [1, 4, 5, 9, 10, 40, 50]; - var roman = ['I', 'IV', 'V', 'IX', 'X', 'XL', 'L']; - var strs = time.split(':'); - var numTime = [parseInt(strs[0], 10), parseInt(strs[1], 10)]; - if (numTime[0].isNaN() || numTime[1].isNaN()) { - throw new TypeError('Неверное время'); - } - var j = arab.length - 1; - strs[0] = ''; - strs[1] = ''; - for (var i = 0; i < 2; i++) { - if (numTime[i] === 0) { - strs[i] = 'N'; - continue; - } - while (numTime[i] != 0) { - if (numTime[i] <= arab[j]) { - strs[i] += roman[j]; - numTime[i] -= arab[j]; - } - else { - j--; - } - } - } - time = numTime[0] + ':' + numTime[1]; - } - catch (err) { - console.log(err.name + ':' + err.message) + var strs = time.split(':'); + var numTime = [parseInt(strs[0], 10), parseInt(strs[1], 10)]; + // console.info(numTime); + if (numTime[0].isNaN || numTime[1].isNaN || numTime[0]*numTime[1] < 0 || numTime[0]>23 || numTime[1]>59) { + throw new TypeError('Неверное время'); + return ; } + time = toRoman(numTime[0]) + ':' + toRoman(numTime[1]); return time; } +module.exports = romanTime; From 78bd9f423f52108e02dab825be4e435b11eb0924 Mon Sep 17 00:00:00 2001 From: SergeyIstomin96 Date: Fri, 21 Oct 2016 00:41:03 +0500 Subject: [PATCH 09/11] =?UTF-8?q?=D0=9F=D0=BE=D1=85=D0=BE=D0=B6=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B8=D0=BB=D0=BE=D1=81=D1=8C2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roman-time.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/roman-time.js b/roman-time.js index f3c43ec..1f86d33 100644 --- a/roman-time.js +++ b/roman-time.js @@ -10,19 +10,18 @@ function toRoman(num) { var j = arab.length - 1; var res = ''; if (num === 0) { - res = 'N'; + res = 'N'; } while (num > 0) { if (num >= arab[j]) { res += roman[j]; num -= arab[j]; } - else { - j--; - } + else { j--; } } return res; } + /** * @param {String} time – время в формате HH:MM (например, 09:05) * @returns {String} – время римскими цифрами (IX:V) @@ -30,12 +29,14 @@ function toRoman(num) { function romanTime(time) { var strs = time.split(':'); var numTime = [parseInt(strs[0], 10), parseInt(strs[1], 10)]; - // console.info(numTime); - if (numTime[0].isNaN || numTime[1].isNaN || numTime[0]*numTime[1] < 0 || numTime[0]>23 || numTime[1]>59) { + if (numTime[0].isNaN || numTime[1].isNaN || numTime[0] * numTime[1] < 0 + || numTime[0] > 23 || numTime[1] > 59) { throw new TypeError('Неверное время'); - return ; + + return NaN; } time = toRoman(numTime[0]) + ':' + toRoman(numTime[1]); + return time; } module.exports = romanTime; From 690a94c994a60d618d30e0c465b62c831caebe16 Mon Sep 17 00:00:00 2001 From: SergeyIstomin96 Date: Fri, 21 Oct 2016 00:45:16 +0500 Subject: [PATCH 10/11] =?UTF-8?q?=D0=9F=D0=BE=D1=85=D0=BE=D0=B6=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B8=D0=BB=D0=BE=D1=81=D1=8C3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roman-time.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/roman-time.js b/roman-time.js index 1f86d33..33768c7 100644 --- a/roman-time.js +++ b/roman-time.js @@ -17,8 +17,11 @@ function toRoman(num) { res += roman[j]; num -= arab[j]; } - else { j--; } + else { + j--; + } } + return res; } @@ -29,11 +32,9 @@ function toRoman(num) { function romanTime(time) { var strs = time.split(':'); var numTime = [parseInt(strs[0], 10), parseInt(strs[1], 10)]; - if (numTime[0].isNaN || numTime[1].isNaN || numTime[0] * numTime[1] < 0 - || numTime[0] > 23 || numTime[1] > 59) { + if (numTime[0].isNaN || numTime[1].isNaN || numTime[0] * numTime[1] < 0 || + numTime[0] > 23 || numTime[1] > 59) { throw new TypeError('Неверное время'); - - return NaN; } time = toRoman(numTime[0]) + ':' + toRoman(numTime[1]); From 05c215afd3b3bcf29699342bba075d30a29d9b71 Mon Sep 17 00:00:00 2001 From: SergeyIstomin96 Date: Fri, 21 Oct 2016 00:50:05 +0500 Subject: [PATCH 11/11] =?UTF-8?q?=D0=A3=D0=B6=D0=B5=20=D0=B1=D0=BB=D0=B8?= =?UTF-8?q?=D0=B7=D0=BA=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roman-time.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/roman-time.js b/roman-time.js index 33768c7..a8be74e 100644 --- a/roman-time.js +++ b/roman-time.js @@ -16,9 +16,8 @@ function toRoman(num) { if (num >= arab[j]) { res += roman[j]; num -= arab[j]; - } - else { - j--; + } else { + j--; } }