diff --git a/src/differenceInHours/index.ts b/src/differenceInHours/index.ts index 5a3738329d..62d7266734 100644 --- a/src/differenceInHours/index.ts +++ b/src/differenceInHours/index.ts @@ -1,6 +1,6 @@ import differenceInMilliseconds from '../differenceInMilliseconds/index' import requiredArgs from '../_lib/requiredArgs/index' -import removesNegativeZeroIfPresent from '../utils/removesNegativeZeroIfPresent' +import getRoundedValue from '../utils/getRoundedValue' const MILLISECONDS_IN_HOUR = 3600000 @@ -35,5 +35,5 @@ export default function differenceInHours(dirtyDateLeft: Date | number, dirtyDat const diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_HOUR - return removesNegativeZeroIfPresent(diff > 0 ? Math.floor(diff) : Math.ceil(diff)) + return getRoundedValue(diff) } diff --git a/src/differenceInMinutes/index.js b/src/differenceInMinutes/index.js index 341f2cddff..f83556ac2d 100644 --- a/src/differenceInMinutes/index.js +++ b/src/differenceInMinutes/index.js @@ -1,6 +1,6 @@ import differenceInMilliseconds from '../differenceInMilliseconds/index' import requiredArgs from '../_lib/requiredArgs/index' -import removesNegativeZeroIfPresent from '../utils/removesNegativeZeroIfPresent' +import getRoundedValue from '../utils/getRoundedValue' var MILLISECONDS_IN_MINUTE = 60000 @@ -43,7 +43,5 @@ export default function differenceInMinutes(dirtyDateLeft, dirtyDateRight) { var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_MINUTE - return removesNegativeZeroIfPresent( - diff > 0 ? Math.floor(diff) : Math.ceil(diff) - ) + return getRoundedValue(diff) } diff --git a/src/differenceInQuarters/index.ts b/src/differenceInQuarters/index.ts index 697424a6f2..d92ffe7285 100644 --- a/src/differenceInQuarters/index.ts +++ b/src/differenceInQuarters/index.ts @@ -1,6 +1,6 @@ import differenceInMonths from '../differenceInMonths/index' import requiredArgs from '../_lib/requiredArgs/index' -import removesNegativeZeroIfPresent from '../utils/removesNegativeZeroIfPresent' +import getRoundedValue from '../utils/getRoundedValue' /** * @name differenceInQuarters @@ -31,5 +31,5 @@ export default function differenceInQuarters( requiredArgs(2, arguments) const diff = differenceInMonths(dirtyDateLeft, dirtyDateRight) / 3 - return removesNegativeZeroIfPresent(diff > 0 ? Math.floor(diff) : Math.ceil(diff)) + return getRoundedValue(diff) } diff --git a/src/differenceInSeconds/index.ts b/src/differenceInSeconds/index.ts index 67c820de00..ad88a6ef79 100644 --- a/src/differenceInSeconds/index.ts +++ b/src/differenceInSeconds/index.ts @@ -1,6 +1,6 @@ import differenceInMilliseconds from '../differenceInMilliseconds/index' import requiredArgs from '../_lib/requiredArgs/index' -import removesNegativeZeroIfPresent from '../utils/removesNegativeZeroIfPresent' +import getRoundedValue from '../utils/getRoundedValue' /** * @name differenceInSeconds @@ -35,5 +35,5 @@ export default function differenceInSeconds( requiredArgs(2, arguments) const diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000 - return removesNegativeZeroIfPresent(diff > 0 ? Math.floor(diff) : Math.ceil(diff)) -} \ No newline at end of file + return getRoundedValue(diff) +} diff --git a/src/differenceInWeeks/index.ts b/src/differenceInWeeks/index.ts index 5e7b0dcb13..3052f14e93 100644 --- a/src/differenceInWeeks/index.ts +++ b/src/differenceInWeeks/index.ts @@ -1,6 +1,6 @@ import differenceInDays from '../differenceInDays/index' import requiredArgs from '../_lib/requiredArgs/index' -import removesNegativeZeroIfPresent from '../utils/removesNegativeZeroIfPresent' +import getRoundedValue from '../utils/getRoundedValue' /** * @name differenceInWeeks @@ -52,5 +52,5 @@ export default function differenceInWeeks( requiredArgs(2, arguments) const diff = differenceInDays(dirtyDateLeft, dirtyDateRight) / 7 - return removesNegativeZeroIfPresent(diff > 0 ? Math.floor(diff) : Math.ceil(diff)) + return getRoundedValue(diff) } diff --git a/src/utils/getRoundedValue/index.ts b/src/utils/getRoundedValue/index.ts new file mode 100644 index 0000000000..2ceb833ec7 --- /dev/null +++ b/src/utils/getRoundedValue/index.ts @@ -0,0 +1,8 @@ +export default function getRoundedValue(number: number): number { + if(number > 0){ + return Math.floor(number) + } else { + const result = Math.ceil(number) + return Object.is(result, -0) ? 0 : result + } +} \ No newline at end of file diff --git a/src/utils/getRoundedValue/test.ts b/src/utils/getRoundedValue/test.ts new file mode 100644 index 0000000000..a99b565419 --- /dev/null +++ b/src/utils/getRoundedValue/test.ts @@ -0,0 +1,23 @@ +// @flow +/* eslint-env mocha */ + +import assert from 'power-assert' +import getRoundedValue from '.' + +describe('getRoundedValue', () => { + + it("floor rounds if argument is greater than 0", () => { + const result = getRoundedValue(1.95) + assert(result === 1) + }) + + it("ceil rounds if argument is less than 0", () => { + const result = getRoundedValue(-0.99) + assert(result === 0) + }) + + it("returns 0 if the argument is rounded to -0 #2555", () => { + const result = getRoundedValue(-0.003) + assert(Object.is(result, 0)) + }) +}) diff --git a/src/utils/removesNegativeZeroIfPresent/index.ts b/src/utils/removesNegativeZeroIfPresent/index.ts deleted file mode 100644 index 3d382f3af3..0000000000 --- a/src/utils/removesNegativeZeroIfPresent/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default function removesNegativeZeroIfPnumberent(number:number) : number { - return Object.is(number, -0) ? 0 : number -} \ No newline at end of file diff --git a/src/utils/removesNegativeZeroIfPresent/test.ts b/src/utils/removesNegativeZeroIfPresent/test.ts deleted file mode 100644 index b7c52bf577..0000000000 --- a/src/utils/removesNegativeZeroIfPresent/test.ts +++ /dev/null @@ -1,23 +0,0 @@ -// @flow -/* eslint-env mocha */ - -import assert from 'power-assert' -import removesNegativeZeroIfPresent from '.' - -describe('removesNegativeZeroIfPresent', () => { - it("returns the original number if it isn't -0", () => { - const result = removesNegativeZeroIfPresent(2) - assert(Object.is(result, 2)) - }) - - it("returns 0 if the argument is 0", () => { - const result = removesNegativeZeroIfPresent(0) - assert(Object.is(result, 0)) - }) - - it("returns 0 if the argument is -0", () => { - const result = removesNegativeZeroIfPresent(-0) - assert(Object.is(result, 0)) - }) - -})