From 33c5b4266bddef5960fedf457a718c9cd5d892dc Mon Sep 17 00:00:00 2001 From: abduhasen Date: Wed, 29 Jul 2026 08:59:23 +0100 Subject: [PATCH 1/2] wrote a function for the alarm --- Sprint-3/alarmclock/alarmclock.js | 26 +++++++++++++++++++++++--- Sprint-3/alarmclock/index.html | 4 ++-- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..98fe6a680 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,6 +1,26 @@ -function setAlarm() {} - -// DO NOT EDIT BELOW HERE +let myInterval; +function setAlarm() { + clearInterval(myInterval); + const userInput = document.querySelector("#alarmSet").value; + let timeRemaining = Number(userInput); + if (isNaN(timeRemaining) || timeRemaining <= 0) { + alert("Please enter a valid number."); + return; + } + myInterval = setInterval(() => { + timeRemaining -= 1; + const minutes = Math.floor(timeRemaining / 60); + const seconds = timeRemaining % 60; + const formattedMinutes = String(minutes).padStart(2, "0"); + const formattedSeconds = String(seconds).padStart(2, "0"); + const heading = document.querySelector("#timeRemaining"); + heading.innerText = `Time Remaining:${formattedMinutes}:${formattedSeconds}`; + if (timeRemaining === 0) { + playAlarm(); + clearInterval(myInterval); + } + }, 1000); +} var audio = new Audio("alarmsound.mp3"); diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/index.html index 48e2e80d9..66748001e 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -1,10 +1,10 @@ - + - Title here + Alarm clock app
From 195dbaec37b97c3c5978863b1dc118f2566a5243 Mon Sep 17 00:00:00 2001 From: abduhasen Date: Wed, 5 Aug 2026 23:32:52 +0100 Subject: [PATCH 2/2] fixing code based on mentor feedback --- Sprint-3/alarmclock/alarmclock.js | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 98fe6a680..81f2f348d 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,20 +1,22 @@ let myInterval; function setAlarm() { clearInterval(myInterval); + pauseAlarm(); const userInput = document.querySelector("#alarmSet").value; let timeRemaining = Number(userInput); - if (isNaN(timeRemaining) || timeRemaining <= 0) { - alert("Please enter a valid number."); + if ( + isNaN(timeRemaining) || + timeRemaining <= 0 || + !Number.isInteger(timeRemaining) + ) { + alert("Please enter a valid whole number."); return; } + updateDisplay(timeRemaining); + myInterval = setInterval(() => { timeRemaining -= 1; - const minutes = Math.floor(timeRemaining / 60); - const seconds = timeRemaining % 60; - const formattedMinutes = String(minutes).padStart(2, "0"); - const formattedSeconds = String(seconds).padStart(2, "0"); - const heading = document.querySelector("#timeRemaining"); - heading.innerText = `Time Remaining:${formattedMinutes}:${formattedSeconds}`; + updateDisplay(timeRemaining); if (timeRemaining === 0) { playAlarm(); clearInterval(myInterval); @@ -22,6 +24,15 @@ function setAlarm() { }, 1000); } +function updateDisplay(timeRemaining) { + const minutes = Math.floor(timeRemaining / 60); + const seconds = timeRemaining % 60; + const formattedMinutes = String(minutes).padStart(2, "0"); + const formattedSeconds = String(seconds).padStart(2, "0"); + const heading = document.querySelector("#timeRemaining"); + heading.innerText = `Time Remaining:${formattedMinutes}:${formattedSeconds}`; +} + var audio = new Audio("alarmsound.mp3"); function setup() {