forked from inside-the-div/JavaScript-Simple-Projects-Timer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstopWatch.js
More file actions
59 lines (51 loc) · 1.63 KB
/
stopWatch.js
File metadata and controls
59 lines (51 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
const outputHour = document.getElementById("stopHour");
const outputMinute = document.getElementById("stopMinute");
const outputSecond = document.getElementById("stopSecond");
const startBtn = document.getElementById("startBtn");
const stopBtn = document.getElementById("stopBtn");
const resetBtn = document.getElementById("reset");
let inputHour = Number(outputHour.innerHTML);
let inputMinute = Number(outputMinute.innerHTML);
let inputSecond = Number(outputSecond.innerHTML);
let timerApp = null;
startBtn.addEventListener("click", startClock);
stopBtn.addEventListener("click", stopClock);
resetBtn.addEventListener("click", resetClock);
function formatTime(time) {
return time < 10 ? "0" + time : time.toString();
}
function updateDisplay() {
outputHour.innerHTML = formatTime(inputHour);
outputMinute.innerHTML = formatTime(inputMinute);
outputSecond.innerHTML = formatTime(inputSecond);
}
function startClock() {
if (timerApp !== null) return; // Prevent multiple intervals
timerApp = setInterval(() => {
inputSecond++;
if (inputSecond >= 60) {
inputSecond = 0;
inputMinute++;
}
if (inputMinute >= 60) {
inputMinute = 0;
inputHour++;
}
updateDisplay();
}, 1000);
startBtn.style.display = "none";
stopBtn.style.display = "inline-block";
}
function stopClock() {
clearInterval(timerApp);
timerApp = null;
startBtn.style.display = "inline-block";
stopBtn.style.display = "none";
}
function resetClock() {
stopClock();
inputHour = 0;
inputMinute = 0;
inputSecond = 0;
updateDisplay();
}