From 581733da8ac0986c23432078335e7e1581587d65 Mon Sep 17 00:00:00 2001 From: shafiekwalker7861 Date: Fri, 31 Jul 2026 16:06:51 +0200 Subject: [PATCH] Complete Sprint 3 alarm clock --- Sprint-3/alarmclock/alarmclock.js | 45 ++++++++++++++++++++++++++++++- Sprint-3/alarmclock/index.html | 2 +- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..312d2c21e 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,4 +1,47 @@ -function setAlarm() {} +let countdownId; +let secondsRemaining = 0; + +function formatTime(totalSeconds) { + const minutes = Math.floor(totalSeconds / 60); + const seconds = totalSeconds % 60; + + const formattedMinutes = String(minutes).padStart(2, "0"); + const formattedSeconds = String(seconds).padStart(2, "0"); + + return `${formattedMinutes}:${formattedSeconds}`; +} + +function updateTimeRemaining() { + const heading = document.getElementById("timeRemaining"); + + heading.textContent = `Time Remaining: ${formatTime(secondsRemaining)}`; +} + +function setAlarm() { + window.clearInterval(countdownId); + + const input = document.getElementById("alarmSet"); + const enteredSeconds = Number.parseInt(input.value, 10); + + if (Number.isNaN(enteredSeconds) || enteredSeconds <= 0) { + secondsRemaining = 0; + updateTimeRemaining(); + return; + } + + secondsRemaining = enteredSeconds; + updateTimeRemaining(); + + countdownId = window.setInterval(() => { + secondsRemaining -= 1; + updateTimeRemaining(); + + if (secondsRemaining === 0) { + window.clearInterval(countdownId); + 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