From 71fdf6e3aa8070bd7f5c4731089373c0e63895ca Mon Sep 17 00:00:00 2001 From: ofonimeedak Date: Wed, 1 Apr 2026 00:21:20 +0100 Subject: [PATCH 1/3] write alarm clock function --- Sprint-3/alarmclock/alarmclock.js | 48 +++++++++++++++++++++++++++++-- Sprint-3/alarmclock/index.html | 4 +-- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..484624654 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,4 +1,47 @@ -function setAlarm() {} +const displayRemainingTime = document.querySelector("#timeRemaining"); + +function setAlarm(alarmTime) { + if (!alarmTime) { + displayRemainingTime.textContent = "Please select a time"; + return; + } + const [h, m, s = 0] = alarmTime.split(":").map(Number); + const totalSeconds = h * 3600 + m * 60 + s; + + const interval = setInterval(() => { + const now = new Date(); + let currentTimeInSec = + now.getHours() * 3600 + now.getMinutes() * 60 + now.getSeconds(); + + let remainingTime = totalSeconds - currentTimeInSec; + + const minutes = Math.floor(remainingTime / 60) + .toString() + .padStart(2, "0"); + + const seconds = (remainingTime % 60).toString().padStart(2, "0"); + + displayRemainingTime.textContent = `Time Remaining: ${minutes}:${seconds}`; + + if (remainingTime < 0) { + remainingTime += 24 * 3600; + } + let trigger = false; + if (!trigger && remainingTime === 10) { + trigger = true; + document.getElementById("main").style.backgroundColor = "red"; + displayRemainingTime.textContent = "⏰"; + playAlarm(); + } + if (remainingTime === 0) { + document.getElementById("main").style.backgroundColor = "red"; + displayRemainingTime.textContent = "⏰"; + playAlarm(); + clearInterval(interval); + return; + } + }, 1000); +} // DO NOT EDIT BELOW HERE @@ -6,7 +49,8 @@ var audio = new Audio("alarmsound.mp3"); function setup() { document.getElementById("set").addEventListener("click", () => { - setAlarm(); + const alarmTime = document.querySelector("#alarmSet").value; + setAlarm(alarmTime); }); document.getElementById("stop").addEventListener("click", () => { diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/index.html index 48e2e80d9..d553d890e 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -6,11 +6,11 @@ Title here - +

Time Remaining: 00:00

- + From de9bb92ab51a56d60b4ce49fb518d128f3165e0b Mon Sep 17 00:00:00 2001 From: ofonimeedak Date: Fri, 3 Apr 2026 17:12:16 +0100 Subject: [PATCH 2/3] fix input format and title --- Sprint-3/alarmclock/alarmclock.js | 34 +++++++++++-------------------- Sprint-3/alarmclock/index.html | 4 ++-- 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 484624654..c47eee347 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,45 +1,35 @@ const displayRemainingTime = document.querySelector("#timeRemaining"); function setAlarm(alarmTime) { - if (!alarmTime) { - displayRemainingTime.textContent = "Please select a time"; + if (!alarmTime || alarmTime <= 0) { + displayRemainingTime.textContent = "Please enter a valid number"; return; } - const [h, m, s = 0] = alarmTime.split(":").map(Number); - const totalSeconds = h * 3600 + m * 60 + s; - const interval = setInterval(() => { - const now = new Date(); - let currentTimeInSec = - now.getHours() * 3600 + now.getMinutes() * 60 + now.getSeconds(); - - let remainingTime = totalSeconds - currentTimeInSec; + let remainingTime = alarmTime; + let trigger = false; - const minutes = Math.floor(remainingTime / 60) + const interval = setInterval(() => { + let minutes = Math.floor(remainingTime / 60) .toString() .padStart(2, "0"); - const seconds = (remainingTime % 60).toString().padStart(2, "0"); + let seconds = (remainingTime % 60).toString().padStart(2, "0"); displayRemainingTime.textContent = `Time Remaining: ${minutes}:${seconds}`; - if (remainingTime < 0) { - remainingTime += 24 * 3600; + if (remainingTime <= 10) { + document.getElementById("main").style.backgroundColor = "red"; } - let trigger = false; - if (!trigger && remainingTime === 10) { + + if (!trigger && remainingTime === 0) { trigger = true; - document.getElementById("main").style.backgroundColor = "red"; - displayRemainingTime.textContent = "⏰"; playAlarm(); - } - if (remainingTime === 0) { - document.getElementById("main").style.backgroundColor = "red"; displayRemainingTime.textContent = "⏰"; - playAlarm(); clearInterval(interval); return; } + remainingTime--; }, 1000); } diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/index.html index d553d890e..1a6ef0d64 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/index.html @@ -4,13 +4,13 @@ - Title here + Alarm Clock

Time Remaining: 00:00

- + From 2906fecc936522dda98f44f625270576754c51bc Mon Sep 17 00:00:00 2001 From: ofonimeedak Date: Sun, 5 Apr 2026 11:01:58 +0100 Subject: [PATCH 3/3] Add backgroundColor to stop and set alarm --- Sprint-3/alarmclock/alarmclock.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index c47eee347..fb1078093 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -40,10 +40,12 @@ var audio = new Audio("alarmsound.mp3"); function setup() { document.getElementById("set").addEventListener("click", () => { const alarmTime = document.querySelector("#alarmSet").value; + document.getElementById("main").style.backgroundColor = "white"; setAlarm(alarmTime); }); document.getElementById("stop").addEventListener("click", () => { + document.getElementById("main").style.backgroundColor = "white"; pauseAlarm(); }); }