From ebb96c2b5133e513ae73cfe3e50aade5b315fbc3 Mon Sep 17 00:00:00 2001 From: Mansoor Munawar Date: Fri, 15 Aug 2025 03:02:35 +0100 Subject: [PATCH 1/4] Implement countdown timer functionality in alarm clock --- Sprint-3/alarmclock/alarmclock.js | 43 ++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..d56e0c820 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,5 +1,46 @@ -function setAlarm() {} +let countDown; +let remainingSeconds = 0; +function setAlarm() { + let timeRemaining = document.getElementById("timeRemaining"); + let alarmSet = document.getElementById("alarmSet").value; + remainingSeconds = Number(alarmSet); + if (isNaN(remainingSeconds) || remainingSeconds <= 0) { + prompt("please enter a value greater than zero!"); + return; + } + displayTime(); + countDown = setInterval(timer, 1000); +} + +function displayTime() { + let timeRemaining = document.getElementById("timeRemaining"); + let hour = Math.floor(remainingSeconds / 3600); + let minutes = Math.floor((remainingSeconds % 3600) / 60); + let seconds = Math.floor(remainingSeconds % 60); + + if (minutes < 10) { + minutes = "0" + minutes; + } + if (seconds < 10) { + seconds = "0" + seconds; + } + + if (hour > 0) { + timeRemaining.textContent = `Time Remaining: ${hour}:${minutes}:${seconds}`; + } else { + timeRemaining.textContent = `Time Remaining: ${minutes}:${seconds}`; + } +} + +function timer() { + remainingSeconds--; + displayTime(); + if (remainingSeconds <= 0) { + clearInterval(countDown); + playAlarm(); + } +} // DO NOT EDIT BELOW HERE var audio = new Audio("alarmsound.mp3"); From 4ced47d74e7701d04a56a645538935782c3b6eba Mon Sep 17 00:00:00 2001 From: Mansoor Munawar Date: Fri, 15 Aug 2025 21:17:46 +0100 Subject: [PATCH 2/4] Update title in index.html to reflect correct application name --- Sprint-3/alarmclock/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/index.html index 48e2e80d9..9b71b5b6e 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -4,7 +4,7 @@ - Title here + Alarm Clock
From bf7dfb90b4bbd96153a4c63d347ed21a90e8e6fb Mon Sep 17 00:00:00 2001 From: Mansoor Munawar Date: Sun, 17 Aug 2025 05:16:20 +0100 Subject: [PATCH 3/4] Fix alarm input validation and improve alert messages --- Sprint-3/alarmclock/alarmclock.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index d56e0c820..468d1213a 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -4,12 +4,23 @@ let remainingSeconds = 0; function setAlarm() { let timeRemaining = document.getElementById("timeRemaining"); let alarmSet = document.getElementById("alarmSet").value; - remainingSeconds = Number(alarmSet); + + remainingSeconds = parseInt(alarmSet); + if (isNaN(remainingSeconds) || remainingSeconds <= 0) { - prompt("please enter a value greater than zero!"); + alert("please enter a value greater than zero!"); + return; + } + + if ((remainingSeconds > 86, 400)) { + alert("Please enter a time less than 24 hourse (86,400)"); return; } displayTime(); + + if (countDown) { + clearInterval(countDown); + } countDown = setInterval(timer, 1000); } From fc000580d48e540a52177b9d2c50c7338d3a2aef Mon Sep 17 00:00:00 2001 From: Mansoor Munawar Date: Sun, 17 Aug 2025 23:17:27 +0100 Subject: [PATCH 4/4] Fix typo in alarm time validation condition --- Sprint-3/alarmclock/alarmclock.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 468d1213a..fcec893af 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -12,7 +12,7 @@ function setAlarm() { return; } - if ((remainingSeconds > 86, 400)) { + if (remainingSeconds > 86400) { alert("Please enter a time less than 24 hourse (86,400)"); return; }