From 66654b630b43453b89638f681a311437d90de4d8 Mon Sep 17 00:00:00 2001 From: Mohammed Abdoon Date: Sat, 15 Nov 2025 14:03:48 +0000 Subject: [PATCH 1/4] alarm clock exercise done --- .../{index.html => alarmclock.html} | 1 + Sprint-3/alarmclock/alarmclock.js | 33 ++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) rename Sprint-3/alarmclock/{index.html => alarmclock.html} (90%) diff --git a/Sprint-3/alarmclock/index.html b/Sprint-3/alarmclock/alarmclock.html similarity index 90% rename from Sprint-3/alarmclock/index.html rename to Sprint-3/alarmclock/alarmclock.html index 48e2e80d9..dfd5ee87e 100644 --- a/Sprint-3/alarmclock/index.html +++ b/Sprint-3/alarmclock/alarmclock.html @@ -13,6 +13,7 @@

Time Remaining: 00:00

+ diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 6ca81cd3b..900d4f91a 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,5 +1,36 @@ -function setAlarm() {} +function setAlarm() { + const timer = Number(document.querySelector("#alarmSet").value); + const timeRemainingHTML = document.querySelector("#timeRemaining"); + const pageTitle = document.querySelector("title"); + let targetTime = new Date().getTime() + timer * 1000; + console.log(targetTime); + + const doAlarm = setInterval( () => { + let timeThisSecond = new Date().getTime(); + let timeDifference = targetTime - timeThisSecond; + let secondsLeft = Math.max(0, Math.ceil(timeDifference / 1000)); + + timeRemainingHTML.innerHTML = `Time Remaining: ${toMMSS(secondsLeft)}`; + pageTitle.innerHTML = `Time Remaining: ${toMMSS(secondsLeft)}`; + + document.getElementById("pause").addEventListener("click", () => { + pauseAlarm(); + clearInterval(doAlarm); + }); + + if (secondsLeft === 0) { + playAlarm(); + clearInterval(doAlarm); + } + }, 1000); +} + +function toMMSS (seconds) { + const minutes = Math.floor(seconds / 60); + seconds = seconds % 60; + return `${String(minutes).padStart(2,"0")}:${String(seconds).padStart(2,"0")}`; +} // DO NOT EDIT BELOW HERE var audio = new Audio("alarmsound.mp3"); From 85550ac0d0b336db4d938b77ececeddc0cba0cdd Mon Sep 17 00:00:00 2001 From: Mohammed Abdoon Date: Sat, 22 Nov 2025 12:49:21 +0000 Subject: [PATCH 2/4] alarmclock.js updated --- Sprint-3/alarmclock/alarmclock.js | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 900d4f91a..109ae2498 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -1,23 +1,16 @@ function setAlarm() { const timer = Number(document.querySelector("#alarmSet").value); - const timeRemainingHTML = document.querySelector("#timeRemaining"); - const pageTitle = document.querySelector("title"); + const timeRemainingEl = document.querySelector("#timeRemaining"); let targetTime = new Date().getTime() + timer * 1000; - console.log(targetTime); const doAlarm = setInterval( () => { - let timeThisSecond = new Date().getTime(); - let timeDifference = targetTime - timeThisSecond; - let secondsLeft = Math.max(0, Math.ceil(timeDifference / 1000)); + const timeThisSecond = new Date().getTime(); + const timeDifference = targetTime - timeThisSecond; + const secondsLeft = Math.max(0, Math.ceil(timeDifference / 1000)); - timeRemainingHTML.innerHTML = `Time Remaining: ${toMMSS(secondsLeft)}`; - pageTitle.innerHTML = `Time Remaining: ${toMMSS(secondsLeft)}`; - - document.getElementById("pause").addEventListener("click", () => { - pauseAlarm(); - clearInterval(doAlarm); - }); + timeRemainingEl.innerHTML = `Time Remaining: ${formatTimeMMSS(secondsLeft)}`; + document.title = `Time Remaining: ${formatTimeMMSS(secondsLeft)}`; if (secondsLeft === 0) { playAlarm(); @@ -26,7 +19,7 @@ function setAlarm() { }, 1000); } -function toMMSS (seconds) { +function formatTimeMMSS (seconds) { const minutes = Math.floor(seconds / 60); seconds = seconds % 60; return `${String(minutes).padStart(2,"0")}:${String(seconds).padStart(2,"0")}`; @@ -36,6 +29,11 @@ function toMMSS (seconds) { var audio = new Audio("alarmsound.mp3"); function setup() { + document.getElementById("pause").addEventListener("click", () => { + pauseAlarm(); + clearInterval(doAlarm); + }); + document.getElementById("set").addEventListener("click", () => { setAlarm(); }); From f3a69687030dbc74470f1b4705b6f243e8365ec8 Mon Sep 17 00:00:00 2001 From: Mohammed Abdoon <138188229+M-Abdoon@users.noreply.github.com> Date: Sat, 22 Nov 2025 15:11:10 +0000 Subject: [PATCH 3/4] alarmclock.js updated --- Sprint-3/alarmclock/alarmclock.js | 1 - 1 file changed, 1 deletion(-) diff --git a/Sprint-3/alarmclock/alarmclock.js b/Sprint-3/alarmclock/alarmclock.js index 109ae2498..9035e3b32 100644 --- a/Sprint-3/alarmclock/alarmclock.js +++ b/Sprint-3/alarmclock/alarmclock.js @@ -10,7 +10,6 @@ function setAlarm() { const secondsLeft = Math.max(0, Math.ceil(timeDifference / 1000)); timeRemainingEl.innerHTML = `Time Remaining: ${formatTimeMMSS(secondsLeft)}`; - document.title = `Time Remaining: ${formatTimeMMSS(secondsLeft)}`; if (secondsLeft === 0) { playAlarm(); From c5f92ebec717999d3a7d8fc7b38d3d1eb1260912 Mon Sep 17 00:00:00 2001 From: Mohammed Abdoon <138188229+M-Abdoon@users.noreply.github.com> Date: Sat, 22 Nov 2025 16:26:32 +0000 Subject: [PATCH 4/4] Change title to 'Alarm clock app' --- Sprint-3/alarmclock/alarmclock.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sprint-3/alarmclock/alarmclock.html b/Sprint-3/alarmclock/alarmclock.html index dfd5ee87e..2dbf5407e 100644 --- a/Sprint-3/alarmclock/alarmclock.html +++ b/Sprint-3/alarmclock/alarmclock.html @@ -4,7 +4,7 @@ - Title here + Alarm clock app