diff --git a/src/date/duration.spec.ts b/src/date/duration.spec.ts index f625070..9976dcf 100644 --- a/src/date/duration.spec.ts +++ b/src/date/duration.spec.ts @@ -62,6 +62,10 @@ describe('duration', () => { expect(secondsToReadableDuration(444444)).toBe('5d 3h'); }); + it('handles 24 hours', () => { + expect(secondsToReadableDuration(691200)).toBe('8d'); + }); + it('handles decimal duration inputs', () => { expect(secondsToReadableDuration(2565.568)).toBe('43m'); }); diff --git a/src/date/duration.ts b/src/date/duration.ts index d63192c..61ab4a1 100644 --- a/src/date/duration.ts +++ b/src/date/duration.ts @@ -56,6 +56,10 @@ export const secondsToReadableDuration = (seconds: number | unknown) => { (normalizedSeconds - days * (60 * 60 * 24)) / 60 / 60 ); + if (hour === 24) { + return `${days + 1}${fDay}`; + } + return `${days}${fDay}${hour > 0 ? ` ${hour}${fHour}` : ''}`; }