본문 바로가기
JavaScript

[JavaScript] 스탑워치 만들기

by teamnova 2021. 9. 16.

안녕하세요!

 

이번 포스트에서는 스탑워치를 만들어보겠습니다.

스틱코드를 통해 코드를 확인하실 수 있습니다.

[JS] 스탑워치 만들기 - Stickode

 

스틱코드

 

stickode.com

 

 

 

stopwatch.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>스탑워치 만들기</title>

</head>
<body>
<div style="margin: 100px">
    <h1 id="stopwatch" >
        00:00:00
    </h1>
    <div>
        <button onclick="startClock()">start</button>
        <button onclick="stopClock()">stop</button>
        <button onclick="resetClock()">reset</button>
    </div>
</div>
<script src="./stopwatch.js" type="text/javascript"></script>
</body>
</html>

 

 

stopwatch.js

let timerId;
let time = 0;
const stopwatch = document.getElementById("stopwatch");
let  hour, min, sec;


function printTime() {
    time++;
    stopwatch.innerText = getTimeFormatString();
}

//시계 시작 - 재귀호출로 반복실행
function startClock() {
    printTime();
    stopClock();
    timerId = setTimeout(startClock, 1000);
}

//시계 중지
function stopClock() {
    if (timerId != null) {
        clearTimeout(timerId);
    }
}

// 시계 초기화
function resetClock() {
    stopClock()
    stopwatch.innerText = "00:00:00";
    time = 0;
}

// 시간(int)을 시, 분, 초 문자열로 변환
function getTimeFormatString() {
    hour = parseInt(String(time / (60 * 60)));
    min = parseInt(String((time - (hour * 60 * 60)) / 60));
    sec = time % 60;

    return String(hour).padStart(2, '0') + ":" + String(min).padStart(2, '0') + ":" + String(sec).padStart(2, '0');
}

 

getTimeFormatString()은 12345형식으로 되어있는 time변수를 01:23:45와 같이 변형해주는 함수입니다.

 

 

위 코드를 통해 아래와 같이 스탑워치를 만들 수 있습니다.