From ebe18c973a81ca7b075c3100704c688b85f9afd5 Mon Sep 17 00:00:00 2001 From: abmhts Date: Sun, 4 Oct 2026 19:36:13 +0100 Subject: [PATCH 1/2] Fix real minutes bug --- format-clock-edge-cases/timeConverter.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/format-clock-edge-cases/timeConverter.js b/format-clock-edge-cases/timeConverter.js index 310c07bd9..9bec99827 100644 --- a/format-clock-edge-cases/timeConverter.js +++ b/format-clock-edge-cases/timeConverter.js @@ -1,11 +1,13 @@ function formatAs12HourClock(time) { - const hours = Number(time.slice(0, 2)); - - if (hours > 12) { - return `${hours - 12}:00 pm`; + const minutes = time.slice(3, 5); + if (hours === 0) { + return `12:${minutes} am`; + } else if (hours < 12) { + return `${time} am`; + } else if (hours === 12) { + return `${time} pm`; } - return `${time} am`; + return `${String(hours - 12).padStart(2, "0")}:${minutes} pm`; } - -export {formatAs12HourClock}; +export { formatAs12HourClock }; From e4c39e8799d3d4a598037258cfe21c0acd88b8c1 Mon Sep 17 00:00:00 2001 From: abmhts Date: Sun, 4 Oct 2026 19:36:34 +0100 Subject: [PATCH 2/2] Add tests for midnight, noon, and minute edge cases --- format-clock-edge-cases/timeConverter.test.js | 62 +++++++++++++++++-- 1 file changed, 57 insertions(+), 5 deletions(-) diff --git a/format-clock-edge-cases/timeConverter.test.js b/format-clock-edge-cases/timeConverter.test.js index 88f2af094..1fd404cf6 100644 --- a/format-clock-edge-cases/timeConverter.test.js +++ b/format-clock-edge-cases/timeConverter.test.js @@ -1,11 +1,63 @@ -import {formatAs12HourClock} from "./timeConverter.js"; +import { formatAs12HourClock } from "./timeConverter.js"; import assert from "node:assert"; import test from "node:test"; -test("correctly convert time after 12:00", function(){ - assert.equal(formatAs12HourClock("23:00"), "11:00 pm"); +test("correctly convert time after 12:00", function () { + assert.equal(formatAs12HourClock("23:00"), "11:00 pm"); }); -test("can correctly convert morning time", function() { - assert.equal(formatAs12HourClock("08:00"), "08:00 am"); +test("can correctly convert morning time", function () { + assert.equal(formatAs12HourClock("08:00"), "08:00 am"); +}); + +test("can correctly convert midnight", function () { + assert.equal(formatAs12HourClock("00:00"), "12:00 am"); +}); + +test("can correctly convert minutes after midnight", function () { + assert.equal(formatAs12HourClock("00:30"), "12:30 am"); +}); + +test("can correctly convert last minute of the midnight hour", function () { + assert.equal(formatAs12HourClock("00:59"), "12:59 am"); +}); + +test("can correctly convert first hour after midnight", function () { + assert.equal(formatAs12HourClock("01:00"), "01:00 am"); +}); + +test("can correctly convert morning time with minutes", function () { + assert.equal(formatAs12HourClock("09:45"), "09:45 am"); +}); + +test("can correctly convert last minute before noon", function () { + assert.equal(formatAs12HourClock("11:59"), "11:59 am"); +}); + +test("can correctly convert noon", function () { + assert.equal(formatAs12HourClock("12:00"), "12:00 pm"); +}); + +test("can correctly convert minutes after noon", function () { + assert.equal(formatAs12HourClock("12:30"), "12:30 pm"); +}); + +test("can correctly convert last minute of the noon hour", function () { + assert.equal(formatAs12HourClock("12:59"), "12:59 pm"); +}); + +test("can correctly convert first hour after noon", function () { + assert.equal(formatAs12HourClock("13:00"), "01:00 pm"); +}); + +test("keeps minutes in the afternoon", function () { + assert.equal(formatAs12HourClock("13:30"), "01:30 pm"); +}); + +test("keeps leading zero in minutes in the evening", function () { + assert.equal(formatAs12HourClock("18:05"), "06:05 pm"); +}); + +test("can correctly convert last minute of the day", function () { + assert.equal(formatAs12HourClock("23:59"), "11:59 pm"); });