From 1c8920b2c1199f0bdd73fa9d20432b01745387f8 Mon Sep 17 00:00:00 2001 From: Nik Bezdzenariy Date: Thu, 23 Apr 2026 14:01:36 +0200 Subject: [PATCH] feat: implement alarm clock countdown timer with setInterval --- Sprint-3/alarmclock/alarmclock.js | 39 ++++++++++++++++++++++++++++++- Sprint-3/alarmclock/index.html | 2 +- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..44ddfaeb2 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,4 +1,41 @@ -function setAlarm() {} +// store interval ID so we can stop it later +let alarmInterval = null; +const heading = document.getElementById("timeRemaining"); +const input = document.getElementById("alarmSet"); +const button = document.getElementById("set"); + +function setAlarm() { + // get the input value (in seconds) + let secondsRemaining = parseInt(input.value); + + // function to format seconds as MM:SS + function formatTime(seconds) { + const minutes = Math.floor(seconds / 60); + const secs = seconds % 60; + // padStart(2, '0') adds leading zero if needed: 5 becomes '05' + return `Time Remaining: ${String(minutes).padStart(2, "0")}:${String(secs).padStart(2, "0")}`; + } + + // update heading immediately with initial value + heading.textContent = formatTime(secondsRemaining); + + // clear any existing alarm before starting new one + if (alarmInterval) { + clearInterval(alarmInterval); + } + + // start countdown: every 1000 milliseconds = 1 sec + alarmInterval = setInterval(() => { + secondsRemaining--; + heading.textContent = formatTime(secondsRemaining); + + // when timer reaches zero - play alarm and stop interval + if (secondsRemaining === 0) { + clearInterval(alarmInterval); + playAlarm(); + } + }, 1000); +} // DO NOT EDIT BELOW HERE diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/index.html index 48e2e80d9..ff2d3b453 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -4,7 +4,7 @@ - Title here + Alarm clock app