diff --git a/src/index.test.ts b/src/index.test.ts index 8c8e140..90a1ef9 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -56,6 +56,14 @@ describe('toHHMM', () => { expect(toHHMM(0.01)).toEqual('0:01') }) + test('handles time ended in :59 correctly', () => { + expect(toHHMM(0.999)).toEqual('0:59') + }) + + test('handles time ended in :00 correctly', () => { + expect(toHHMM(1)).toEqual('1:00') + }) + test('handles leading and trailing space', () => { expect(toHHMM(' -1:30 + 1:44 ')).toEqual('0:14') }) diff --git a/src/index.ts b/src/index.ts index facfafe..b8a27e3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -33,7 +33,12 @@ export const toHHMM = (input?: number | string): string => { const sign = total < 0 ? '-' : '' total = Math.abs(total) const hours = Math.floor(total / 60) - const minutes = Math.round(total) % 60 + let minutes = total % 60 + if (minutes >= 59.5 && minutes < 60) { + minutes = Math.floor(minutes) + } else { + minutes = Math.round(minutes) + } const paddedMinutes = minutes.toString().padStart(2, '0') return `${sign}${hours}:${paddedMinutes}`