From f46518c8ae71581f995a86303543cbd0d7ff00fe Mon Sep 17 00:00:00 2001 From: Michael Goldspinner Date: Thu, 11 Jan 2018 20:45:42 -0500 Subject: [PATCH 01/10] Maintain Digits --- snippets/maintain-digits.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 snippets/maintain-digits.md diff --git a/snippets/maintain-digits.md b/snippets/maintain-digits.md new file mode 100644 index 000000000..097291950 --- /dev/null +++ b/snippets/maintain-digits.md @@ -0,0 +1,14 @@ +### Maintain Digits + +Use the modulo operator (`%`) to find values of single and tens digits. +Find which ordinal pattern digits match. +If digit is found in teens pattern, use teens ordinal. + +```js +const setDigits = ( int=0, len=1, dir=0 ) => { + return dir > 0 ? int.toString().padStart(len, "0") : int.toString().padEnd(len, "0"); +} +// setDigits(1, 2, 0) -> "10" +// setDigits(1, 2, 1) -> "01" +// setDigits(11, 2, 1) -> "11" +``` \ No newline at end of file From 3fa8f170afd73cd052fa53819dfd2f2c3c71ce72 Mon Sep 17 00:00:00 2001 From: Michael Goldspinner Date: Thu, 11 Jan 2018 20:45:59 -0500 Subject: [PATCH 02/10] Transform Integer to 12 Hour Format --- snippets/transform-integer-to-12-hour-format.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 snippets/transform-integer-to-12-hour-format.md diff --git a/snippets/transform-integer-to-12-hour-format.md b/snippets/transform-integer-to-12-hour-format.md new file mode 100644 index 000000000..865aaa0a3 --- /dev/null +++ b/snippets/transform-integer-to-12-hour-format.md @@ -0,0 +1,14 @@ +### Transform Int (12 Hour Format) + +Use the modulo operator (`%`) to transform an integer to a 12 hour clock format. + +```js +const to12Hour = ( int ) => { + int = parseInt(int); + + return int === 0 || int === 12 || int === 24 ? 12 : int % 12; +} +// to12Hour(9) -> "9" +// to12Hour(9) -> "9" +// to12Hour(13) -> "1" +``` \ No newline at end of file From 5fe2b016ee65441bb140cf7993a8d8619432f88e Mon Sep 17 00:00:00 2001 From: Michael Goldspinner Date: Thu, 11 Jan 2018 20:46:08 -0500 Subject: [PATCH 03/10] Get Meridiem of Integer --- snippets/get-meridiem-of-integer.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 snippets/get-meridiem-of-integer.md diff --git a/snippets/get-meridiem-of-integer.md b/snippets/get-meridiem-of-integer.md new file mode 100644 index 000000000..fa669689c --- /dev/null +++ b/snippets/get-meridiem-of-integer.md @@ -0,0 +1,16 @@ +### Get Meridiem of Integer (12 hour format) + +Use the modulo operator (`%`) to transform an integer to a 12 hour clock format. Affix appropriate meridiem to stringified integer. + +```js +const toMeridiem = int => { + int = parseInt(int); + const meridiems = ["am", "pm"]; + let period = int > 11 ? 1 : 2; + + return int === 0 || int === 12 || int === 24 ? 12 + meridiems[period] : int % 12 + meridiems[period]; +} +// toMeridiem(0) -> "12am" +// toMeridiem(9) -> "9am" +// toMeridiem(13) -> "1pm" +``` \ No newline at end of file From 49ddcb5e635adcc4fad63409b6ce3dc6ca77287a Mon Sep 17 00:00:00 2001 From: Michael Goldspinner Date: Thu, 11 Jan 2018 20:46:18 -0500 Subject: [PATCH 04/10] Format Colon Time from Date --- snippets/format-colon-time-from-date.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 snippets/format-colon-time-from-date.md diff --git a/snippets/format-colon-time-from-date.md b/snippets/format-colon-time-from-date.md new file mode 100644 index 000000000..eea03697a --- /dev/null +++ b/snippets/format-colon-time-from-date.md @@ -0,0 +1,11 @@ +### Format Colon Timestamp from Date (12 hour format) + +Utilizes to12Hour() to transform date.getHours() to 12 hour format and toDigits to maintain double digits for time integers. Formats integers from given date object into a colon time representation. + +```js +let toColonTime12 = ( date ) => { + let times = [ to12Hour(date.getHours()), date.getMinutes(), date.getSeconds() ]; + return times.map( t => setDigits(t, 2, 1) ).join(":"); +} +// toColonTime12(new Date()) -> "08:38:00" +``` \ No newline at end of file From 1ca07eb961b705ab44da73981057d49c7d304c29 Mon Sep 17 00:00:00 2001 From: Michael Goldspinner Date: Fri, 12 Jan 2018 10:05:03 -0500 Subject: [PATCH 05/10] Guidelines fix --- snippets/format-colon-time-from-date.md | 11 ----------- snippets/get-meridiem-of-integer.md | 16 ---------------- snippets/getColonTime.md | 13 +++++++++++++ snippets/getMeridiemOfInteger.md | 15 +++++++++++++++ snippets/maintain-digits.md | 14 -------------- snippets/maintainDigits.md | 14 ++++++++++++++ snippets/to12HourFormat.md | 13 +++++++++++++ snippets/transform-integer-to-12-hour-format.md | 14 -------------- 8 files changed, 55 insertions(+), 55 deletions(-) delete mode 100644 snippets/format-colon-time-from-date.md delete mode 100644 snippets/get-meridiem-of-integer.md create mode 100644 snippets/getColonTime.md create mode 100644 snippets/getMeridiemOfInteger.md delete mode 100644 snippets/maintain-digits.md create mode 100644 snippets/maintainDigits.md create mode 100644 snippets/to12HourFormat.md delete mode 100644 snippets/transform-integer-to-12-hour-format.md diff --git a/snippets/format-colon-time-from-date.md b/snippets/format-colon-time-from-date.md deleted file mode 100644 index eea03697a..000000000 --- a/snippets/format-colon-time-from-date.md +++ /dev/null @@ -1,11 +0,0 @@ -### Format Colon Timestamp from Date (12 hour format) - -Utilizes to12Hour() to transform date.getHours() to 12 hour format and toDigits to maintain double digits for time integers. Formats integers from given date object into a colon time representation. - -```js -let toColonTime12 = ( date ) => { - let times = [ to12Hour(date.getHours()), date.getMinutes(), date.getSeconds() ]; - return times.map( t => setDigits(t, 2, 1) ).join(":"); -} -// toColonTime12(new Date()) -> "08:38:00" -``` \ No newline at end of file diff --git a/snippets/get-meridiem-of-integer.md b/snippets/get-meridiem-of-integer.md deleted file mode 100644 index fa669689c..000000000 --- a/snippets/get-meridiem-of-integer.md +++ /dev/null @@ -1,16 +0,0 @@ -### Get Meridiem of Integer (12 hour format) - -Use the modulo operator (`%`) to transform an integer to a 12 hour clock format. Affix appropriate meridiem to stringified integer. - -```js -const toMeridiem = int => { - int = parseInt(int); - const meridiems = ["am", "pm"]; - let period = int > 11 ? 1 : 2; - - return int === 0 || int === 12 || int === 24 ? 12 + meridiems[period] : int % 12 + meridiems[period]; -} -// toMeridiem(0) -> "12am" -// toMeridiem(9) -> "9am" -// toMeridiem(13) -> "1pm" -``` \ No newline at end of file diff --git a/snippets/getColonTime.md b/snippets/getColonTime.md new file mode 100644 index 000000000..f03e8c93f --- /dev/null +++ b/snippets/getColonTime.md @@ -0,0 +1,13 @@ +### toColonTime + +Returns transformed time integers from provided date object to "colon time" representation. Formats hour to 12 hour and maintains digit length of colon time format (HH:MM:SS). + +```js +let toColonTime = ( date ) => { + let times = [ date.getHours(), date.getMinutes(), date.getSeconds() ]; + times[0] = times[0] === 0 || times[0] === 12 || times[0] === 24 ? 12 : times[0] % 12; + + return times.map( time => time.toString().padStart(2, "0") ).join(":"); +} +// toColonTime12(new Date()) -> "08:38:00" +``` \ No newline at end of file diff --git a/snippets/getMeridiemOfInteger.md b/snippets/getMeridiemOfInteger.md new file mode 100644 index 000000000..74a89fc58 --- /dev/null +++ b/snippets/getMeridiemOfInteger.md @@ -0,0 +1,15 @@ +### toMeridiem + +Uses modulo operator (`%`) to transform an integer to a 12 hour clock format. Stringifies transformed integer with concatenated meridiem suffix. Maintains 12 hour format principles with conditional check (0am - 12am). + +```js +const toMeridiem = num => { + const meridiems = ["am", "pm"]; + let period = num > 11 ? 1 : 2; + + return num === 0 || num === 12 || num === 24 ? 12 + meridiems[period] : num % 12 + meridiems[period]; +} +// toMeridiem(0) -> "12am" +// toMeridiem(9) -> "9am" +// toMeridiem(13) -> "1pm" +``` \ No newline at end of file diff --git a/snippets/maintain-digits.md b/snippets/maintain-digits.md deleted file mode 100644 index 097291950..000000000 --- a/snippets/maintain-digits.md +++ /dev/null @@ -1,14 +0,0 @@ -### Maintain Digits - -Use the modulo operator (`%`) to find values of single and tens digits. -Find which ordinal pattern digits match. -If digit is found in teens pattern, use teens ordinal. - -```js -const setDigits = ( int=0, len=1, dir=0 ) => { - return dir > 0 ? int.toString().padStart(len, "0") : int.toString().padEnd(len, "0"); -} -// setDigits(1, 2, 0) -> "10" -// setDigits(1, 2, 1) -> "01" -// setDigits(11, 2, 1) -> "11" -``` \ No newline at end of file diff --git a/snippets/maintainDigits.md b/snippets/maintainDigits.md new file mode 100644 index 000000000..8b6c8dc18 --- /dev/null +++ b/snippets/maintainDigits.md @@ -0,0 +1,14 @@ +### setDigits + +Uses `String.padStart()` or `String.padEnd()` to maintain digit length of a provided integer. Returns stringified integer. + +Control direction (0 = before integer, 1 = after integer). + +```js +const setDigits = ( num=0, len=1, direction=0 ) => { + return direction > 0 ? num.toString().padStart(len, "0") : num.toString().padEnd(len, "0"); +} +// setDigits(1, 2, 0) -> "10" +// setDigits(1, 2, 1) -> "01" +// setDigits(11, 2, 1) -> "11" +``` \ No newline at end of file diff --git a/snippets/to12HourFormat.md b/snippets/to12HourFormat.md new file mode 100644 index 000000000..c58a9eda3 --- /dev/null +++ b/snippets/to12HourFormat.md @@ -0,0 +1,13 @@ +### to12Hour + +Uses the modulo operator (`%`) to transform an integer to a 12 hour clock format. + +```js +const to12Hour = ( num ) => { + + return num === 0 || num === 12 || num === 24 ? 12 : num % 12; +} +// to12Hour(9) -> "9" +// to12Hour(9) -> "9" +// to12Hour(13) -> "1" +``` \ No newline at end of file diff --git a/snippets/transform-integer-to-12-hour-format.md b/snippets/transform-integer-to-12-hour-format.md deleted file mode 100644 index 865aaa0a3..000000000 --- a/snippets/transform-integer-to-12-hour-format.md +++ /dev/null @@ -1,14 +0,0 @@ -### Transform Int (12 Hour Format) - -Use the modulo operator (`%`) to transform an integer to a 12 hour clock format. - -```js -const to12Hour = ( int ) => { - int = parseInt(int); - - return int === 0 || int === 12 || int === 24 ? 12 : int % 12; -} -// to12Hour(9) -> "9" -// to12Hour(9) -> "9" -// to12Hour(13) -> "1" -``` \ No newline at end of file From e12369f0771f40bfbb35a15ca5fe0ea2ae2fb10e Mon Sep 17 00:00:00 2001 From: Michael Goldspinner Date: Sat, 13 Jan 2018 10:12:48 -0500 Subject: [PATCH 06/10] Removed Unwanted Functions Removed unnecessary functions, features are present in other two submitted functions. --- snippets/maintainDigits.md | 14 -------------- snippets/to12HourFormat.md | 13 ------------- 2 files changed, 27 deletions(-) delete mode 100644 snippets/maintainDigits.md delete mode 100644 snippets/to12HourFormat.md diff --git a/snippets/maintainDigits.md b/snippets/maintainDigits.md deleted file mode 100644 index 8b6c8dc18..000000000 --- a/snippets/maintainDigits.md +++ /dev/null @@ -1,14 +0,0 @@ -### setDigits - -Uses `String.padStart()` or `String.padEnd()` to maintain digit length of a provided integer. Returns stringified integer. - -Control direction (0 = before integer, 1 = after integer). - -```js -const setDigits = ( num=0, len=1, direction=0 ) => { - return direction > 0 ? num.toString().padStart(len, "0") : num.toString().padEnd(len, "0"); -} -// setDigits(1, 2, 0) -> "10" -// setDigits(1, 2, 1) -> "01" -// setDigits(11, 2, 1) -> "11" -``` \ No newline at end of file diff --git a/snippets/to12HourFormat.md b/snippets/to12HourFormat.md deleted file mode 100644 index c58a9eda3..000000000 --- a/snippets/to12HourFormat.md +++ /dev/null @@ -1,13 +0,0 @@ -### to12Hour - -Uses the modulo operator (`%`) to transform an integer to a 12 hour clock format. - -```js -const to12Hour = ( num ) => { - - return num === 0 || num === 12 || num === 24 ? 12 : num % 12; -} -// to12Hour(9) -> "9" -// to12Hour(9) -> "9" -// to12Hour(13) -> "1" -``` \ No newline at end of file From 082282af622a7fa77e5730f378ad6588968f063a Mon Sep 17 00:00:00 2001 From: Michael Goldspinner Date: Sat, 13 Jan 2018 10:14:48 -0500 Subject: [PATCH 07/10] Fixes to Submitted Functions Fixed formatting of both snippet files. --- snippets/getColonTime.md | 13 ------------- snippets/getColonTimeFromDate.md | 16 ++++++++++++++++ snippets/getMeridiemOfInteger.md | 15 --------------- snippets/getMeridiemSuffixOfInteger.md | 16 ++++++++++++++++ 4 files changed, 32 insertions(+), 28 deletions(-) delete mode 100644 snippets/getColonTime.md create mode 100644 snippets/getColonTimeFromDate.md delete mode 100644 snippets/getMeridiemOfInteger.md create mode 100644 snippets/getMeridiemSuffixOfInteger.md diff --git a/snippets/getColonTime.md b/snippets/getColonTime.md deleted file mode 100644 index f03e8c93f..000000000 --- a/snippets/getColonTime.md +++ /dev/null @@ -1,13 +0,0 @@ -### toColonTime - -Returns transformed time integers from provided date object to "colon time" representation. Formats hour to 12 hour and maintains digit length of colon time format (HH:MM:SS). - -```js -let toColonTime = ( date ) => { - let times = [ date.getHours(), date.getMinutes(), date.getSeconds() ]; - times[0] = times[0] === 0 || times[0] === 12 || times[0] === 24 ? 12 : times[0] % 12; - - return times.map( time => time.toString().padStart(2, "0") ).join(":"); -} -// toColonTime12(new Date()) -> "08:38:00" -``` \ No newline at end of file diff --git a/snippets/getColonTimeFromDate.md b/snippets/getColonTimeFromDate.md new file mode 100644 index 000000000..e1e7b1990 --- /dev/null +++ b/snippets/getColonTimeFromDate.md @@ -0,0 +1,16 @@ +### getColonTimeFromDate + +Formats hour, minute, and second time integers from Date into stringified colon representation. Formats hour integer to 12 hour clock and maintains digit lengths to match (HH:MM:SS). + +```js +const getColonTimeFromDate = date => { + let times = [ date.getHours(), date.getMinutes(), date.getSeconds() ]; + times[0] = times[0] === 0 || times[0] === 12 || times[0] === 24 ? 12 : times[0] % 12; + + return times.map( time => time.toString().padStart(2, "0") ).join(":"); +} +``` + +```js +getColonTimeFromDate(new Date()) // "08:38:00" +``` \ No newline at end of file diff --git a/snippets/getMeridiemOfInteger.md b/snippets/getMeridiemOfInteger.md deleted file mode 100644 index 74a89fc58..000000000 --- a/snippets/getMeridiemOfInteger.md +++ /dev/null @@ -1,15 +0,0 @@ -### toMeridiem - -Uses modulo operator (`%`) to transform an integer to a 12 hour clock format. Stringifies transformed integer with concatenated meridiem suffix. Maintains 12 hour format principles with conditional check (0am - 12am). - -```js -const toMeridiem = num => { - const meridiems = ["am", "pm"]; - let period = num > 11 ? 1 : 2; - - return num === 0 || num === 12 || num === 24 ? 12 + meridiems[period] : num % 12 + meridiems[period]; -} -// toMeridiem(0) -> "12am" -// toMeridiem(9) -> "9am" -// toMeridiem(13) -> "1pm" -``` \ No newline at end of file diff --git a/snippets/getMeridiemSuffixOfInteger.md b/snippets/getMeridiemSuffixOfInteger.md new file mode 100644 index 000000000..58d1acf8b --- /dev/null +++ b/snippets/getMeridiemSuffixOfInteger.md @@ -0,0 +1,16 @@ +### getMeridiemSuffixOfInteger + +Uses modulo (`%`) and conditional checks to transform integer to a stringified 12 hour format with meridiem suffix. Conditionals maintain 12 hour principles (0am - 12am). + +Does not handle integers not representing an hour time (ie: 25, 1000, etc...) + +```js +const getMeridiemSuffixOfInteger = num => num === 0 || num === 24 ? 12 + "am" : num === 12 ? 12 + "pm" : num < 12 ? (num % 12) + "am" : (num % 12) + "pm"; +``` + +```js +getMeridiemSuffixOfInteger(0) // "12am" +getMeridiemSuffixOfInteger(11) // "11am" +getMeridiemSuffixOfInteger(13) // "1pm" +getMeridiemSuffixOfInteger(25) // "1pm" +``` \ No newline at end of file From 02ecdcb10f459007e23d43ed7ed49b84e9c370ca Mon Sep 17 00:00:00 2001 From: Michael Goldspinner Date: Sat, 13 Jan 2018 10:16:09 -0500 Subject: [PATCH 08/10] Improved getColonTime() Reduced function code to a single line. Uses Date.toTimeString() and String.slice() to select just the colon time from stirng. --- snippets/getColonTimeFromDate.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/snippets/getColonTimeFromDate.md b/snippets/getColonTimeFromDate.md index e1e7b1990..7d7e7f297 100644 --- a/snippets/getColonTimeFromDate.md +++ b/snippets/getColonTimeFromDate.md @@ -3,12 +3,7 @@ Formats hour, minute, and second time integers from Date into stringified colon representation. Formats hour integer to 12 hour clock and maintains digit lengths to match (HH:MM:SS). ```js -const getColonTimeFromDate = date => { - let times = [ date.getHours(), date.getMinutes(), date.getSeconds() ]; - times[0] = times[0] === 0 || times[0] === 12 || times[0] === 24 ? 12 : times[0] % 12; - - return times.map( time => time.toString().padStart(2, "0") ).join(":"); -} +const getColonTimeFromDate = date => date.toTimeString().slice(0, 8) ``` ```js From cc3008bfaee6da7d45e8029fceba907ea00aee57 Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Fri, 2 Feb 2018 12:57:41 +0200 Subject: [PATCH 09/10] Update getColonTimeFromDate.md --- snippets/getColonTimeFromDate.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/snippets/getColonTimeFromDate.md b/snippets/getColonTimeFromDate.md index 7d7e7f297..0d9484ec7 100644 --- a/snippets/getColonTimeFromDate.md +++ b/snippets/getColonTimeFromDate.md @@ -1,11 +1,13 @@ ### getColonTimeFromDate -Formats hour, minute, and second time integers from Date into stringified colon representation. Formats hour integer to 12 hour clock and maintains digit lengths to match (HH:MM:SS). +Returns a string of the form `HH:MM:SS` from a `Date` object. + +Use `Date.toString()` and `String.slice()` to get the `HH:MM:SS` part of a given `Date` object. ```js -const getColonTimeFromDate = date => date.toTimeString().slice(0, 8) +const getColonTimeFromDate = date => date.toTimeString().slice(0, 8); ``` ```js -getColonTimeFromDate(new Date()) // "08:38:00" -``` \ No newline at end of file +getColonTimeFromDate(new Date()); // "08:38:00" +``` From 172b9ff071a22bc25d3d9732770f825a86cee521 Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Fri, 2 Feb 2018 13:01:49 +0200 Subject: [PATCH 10/10] Update getMeridiemSuffixOfInteger.md --- snippets/getMeridiemSuffixOfInteger.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/snippets/getMeridiemSuffixOfInteger.md b/snippets/getMeridiemSuffixOfInteger.md index 58d1acf8b..03b529e48 100644 --- a/snippets/getMeridiemSuffixOfInteger.md +++ b/snippets/getMeridiemSuffixOfInteger.md @@ -1,16 +1,16 @@ ### getMeridiemSuffixOfInteger -Uses modulo (`%`) and conditional checks to transform integer to a stringified 12 hour format with meridiem suffix. Conditionals maintain 12 hour principles (0am - 12am). +Converts an integer to a suffixed string, adding `am` or `pm` based on its value. -Does not handle integers not representing an hour time (ie: 25, 1000, etc...) +Use the modulo operator (`%`) and conditional checks to transform an integer to a stringified 12-hour format with meridiem suffix. ```js const getMeridiemSuffixOfInteger = num => num === 0 || num === 24 ? 12 + "am" : num === 12 ? 12 + "pm" : num < 12 ? (num % 12) + "am" : (num % 12) + "pm"; ``` ```js -getMeridiemSuffixOfInteger(0) // "12am" -getMeridiemSuffixOfInteger(11) // "11am" -getMeridiemSuffixOfInteger(13) // "1pm" -getMeridiemSuffixOfInteger(25) // "1pm" -``` \ No newline at end of file +getMeridiemSuffixOfInteger(0); // "12am" +getMeridiemSuffixOfInteger(11); // "11am" +getMeridiemSuffixOfInteger(13); // "1pm" +getMeridiemSuffixOfInteger(25); // "1pm" +```