diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..3dab42d65 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,4 +1,45 @@ -function setAlarm() {} +const alarmTime = document.getElementById("alarmSet"); +const timeRemaining = document.getElementById("timeRemaining"); +let remainingSeconds; +let timer; + +function setAlarm() { + pauseAlarm(); + + remainingSeconds = Number(alarmTime.value); + + if (!Number.isFinite(remainingSeconds) || remainingSeconds <= 0) { + alert("Please enter a valid number."); + return; + } + + displayTimeRemaining(); + + timer = setInterval(() => { + remainingSeconds--; + + if (remainingSeconds <= 0) { + remainingSeconds = 0; + displayTimeRemaining(); + clearInterval(timer); + window.playAlarm(); + return; + } + + displayTimeRemaining(); + }, 1000); +} + +function displayTimeRemaining() { + let minutes = Math.floor(remainingSeconds / 60); + let seconds = remainingSeconds % 60; + const formatTime = + minutes.toString().padStart(2, "0") + + ":" + + seconds.toString().padStart(2, "0"); + + timeRemaining.textContent = `Time Remaining: ${formatTime}`; +} // DO NOT EDIT BELOW HERE @@ -19,6 +60,7 @@ function playAlarm() { } function pauseAlarm() { + clearInterval(timer); audio.pause(); }