From 479973bd9303772bbb6d123cb44553349bec90cd Mon Sep 17 00:00:00 2001 From: Suryapratap Singh Date: Sat, 4 Sep 2021 23:05:30 +0530 Subject: [PATCH 1/2] add RailwayTimeConversion method --- Conversions/RailwayTimeConversion.js | 35 ++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Conversions/RailwayTimeConversion.js diff --git a/Conversions/RailwayTimeConversion.js b/Conversions/RailwayTimeConversion.js new file mode 100644 index 000000000..4df1bf4ed --- /dev/null +++ b/Conversions/RailwayTimeConversion.js @@ -0,0 +1,35 @@ +/* + The time conversion of normalized time to the railway is a simple algorithm + because we know that if the time is in 'AM' value it means they only want + some changes on hours and minutes and if the time in 'PM' it means the only + want some changes in hour value. + + Input Formate -> 07:05:45PM + Output Fromate -> 19:05:45 + + Problem & Explanation Source : https://www.mathsisfun.com/time.html +*/ + +/** + * RailwayTimeConversion method converts normalized time string to Railway time string. + * @param {String} timeString Normalized time string. + * @returns {String} Railway time string. + */ +const RailwayTimeConversion = (timeString) => { + // firstly, check that input is a string or not. + if (typeof timeString !== 'string') { + return new TypeError('Argument is not a string.') + } + // split the string by ':' character. + const [hour, minute, scondWithShift] = timeString.split(':') + // split second and shift value. + const [second, shift] = [scondWithShift.substr(0, 2), scondWithShift.substr(2)] + // convert shifted time to not-shift time(Railway time) by using the above explanation. + if (shift === 'PM') { + if (parseInt(hour) === 12) { return `${hour}:${minute}:${second}` } else { return `${parseInt(hour) + 12}:${minute}:${second}` } + } else { + if (parseInt(hour) === 12) { return `00:${minute}:${second}` } else { return `${hour}:${minute}:${second}` } + } +} + +module.exports = RailwayTimeConversion From 34b783dd59ae0339ea4420da88889eb4baf834ab Mon Sep 17 00:00:00 2001 From: Suryapratap Singh Date: Sat, 4 Sep 2021 23:06:12 +0530 Subject: [PATCH 2/2] re-formate with standard.js --- Conversions/RailwayTimeConversion.js | 34 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/Conversions/RailwayTimeConversion.js b/Conversions/RailwayTimeConversion.js index 4df1bf4ed..f3d30fdef 100644 --- a/Conversions/RailwayTimeConversion.js +++ b/Conversions/RailwayTimeConversion.js @@ -1,7 +1,7 @@ /* - The time conversion of normalized time to the railway is a simple algorithm - because we know that if the time is in 'AM' value it means they only want - some changes on hours and minutes and if the time in 'PM' it means the only + The time conversion of normalized time to the railway is a simple algorithm + because we know that if the time is in 'AM' value it means they only want + some changes on hours and minutes and if the time in 'PM' it means the only want some changes in hour value. Input Formate -> 07:05:45PM @@ -16,20 +16,20 @@ * @returns {String} Railway time string. */ const RailwayTimeConversion = (timeString) => { - // firstly, check that input is a string or not. - if (typeof timeString !== 'string') { - return new TypeError('Argument is not a string.') - } - // split the string by ':' character. - const [hour, minute, scondWithShift] = timeString.split(':') - // split second and shift value. - const [second, shift] = [scondWithShift.substr(0, 2), scondWithShift.substr(2)] - // convert shifted time to not-shift time(Railway time) by using the above explanation. - if (shift === 'PM') { - if (parseInt(hour) === 12) { return `${hour}:${minute}:${second}` } else { return `${parseInt(hour) + 12}:${minute}:${second}` } - } else { - if (parseInt(hour) === 12) { return `00:${minute}:${second}` } else { return `${hour}:${minute}:${second}` } - } + // firstly, check that input is a string or not. + if (typeof timeString !== 'string') { + return new TypeError('Argument is not a string.') + } + // split the string by ':' character. + const [hour, minute, scondWithShift] = timeString.split(':') + // split second and shift value. + const [second, shift] = [scondWithShift.substr(0, 2), scondWithShift.substr(2)] + // convert shifted time to not-shift time(Railway time) by using the above explanation. + if (shift === 'PM') { + if (parseInt(hour) === 12) { return `${hour}:${minute}:${second}` } else { return `${parseInt(hour) + 12}:${minute}:${second}` } + } else { + if (parseInt(hour) === 12) { return `00:${minute}:${second}` } else { return `${hour}:${minute}:${second}` } + } } module.exports = RailwayTimeConversion