From c2d38f2e070f08331e769a38f48d0d77c9a784c1 Mon Sep 17 00:00:00 2001 From: David Szajngarten Date: Thu, 12 Oct 2023 09:23:00 +0000 Subject: [PATCH] fix ssf h:mm rounding --- packages/ssf/ssf.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/ssf/ssf.js b/packages/ssf/ssf.js index 9b5cdc2..e945df4 100644 --- a/packages/ssf/ssf.js +++ b/packages/ssf/ssf.js @@ -770,7 +770,7 @@ function eval_fmt(fmt, v, opts, flen) { /* Round number up if displaying seconds with no microseconds */ if (dt && (dt.S + dt.u >= 59.5) && sec && !usec) { - dt=parse_date_code(Math.round(v), opts) + dt=parse_date_code(Math.round((v - Math.floor(v))*86400)/86400, opts) } /* Scan for date/time parts */ @@ -799,6 +799,7 @@ function eval_fmt(fmt, v, opts, flen) { if(dt.u >= 0.5) { dt.u = 0; ++dt.S; } if(dt.S >= 60) { dt.S = 0; ++dt.M; } if(dt.M >= 60) { dt.M = 0; ++dt.H; } + if(dt.H >= 24) { dt.H = 0; ++dt.d; } break; case 2: if(dt.u >= 0.5) { dt.u = 0; ++dt.S; }