From d0dbc13803462ecb545a353958f7185094417a90 Mon Sep 17 00:00:00 2001 From: Altay Date: Wed, 6 Mar 2024 17:08:33 +0300 Subject: [PATCH] chore: handle `24h` for `secondsToReadableDuration` --- src/date/duration.spec.ts | 4 ++++ src/date/duration.ts | 4 ++++ 2 files changed, 8 insertions(+) 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}` : ''}`; }