ν°μ€ν 리 λ·°
Question
μμ κ°μ΄ μλνλ μ€ν±μμΉλ₯Ό ꡬννμμ€
μ£Όμ Solution_stopwatch μκ° κ΅¬ν
미리μ΄_msλ§λ€(0~99미리μ΄λ 100λΆμ 1μ΄ => 100) setInterval() ν¨μ λ΄μμ μ½λ°± ν¨μλ₯Ό μ€ννλ€.
ν΄λΉ μ½λ°± ν¨μλ₯Ό μ€νν λλ§λ€ currentTime(νμ¬ μκ°) κ°μ κ°μ Έμ€κ³ κ°μ Έμ¨ currentTime κ°μμ startTime(νμ¬ μκ°)μ
κ°μ°ν΄μ£Όλ©΄ μ€ν±μμΉμ Start λ²νΌμ λλ₯΄κ³ (μμ μκ°) κ·Έ λ€λ‘λΆν° ms λΉ μΌλ§λ μκ°μ΄ νλ λμ§ μ μ μλ€.
μ€ν±μμΉμ νμλλ μκ°(ms λΉ) = currentTime - startTime
νμ§λ§ νμ¬ μ€ν±μμΉ νμλλ λͺ¨λ μκ°μ λ€μ μ°μ°μ μ¬μ©νμ¬ κ΅¬νκ² λλ©΄ λ€μκ³Ό κ°μ λ¬Έμ κ° λ°μνλ€.
μ΄κΈ° Start λ²νΌμ ν΄λ¦νμμ λλ λ¬Έμ κ° μμ§λ§ Stop λ²νΌμ λλ¬μ μ€ν±μμΉ μκ°μ λ©μ·λ€κ° λ€μ Start λ²νΌμ ν΄λ¦νμμ κ²½μ°μλ
λ€μ κ·Έλ¦Όκ³Ό κ°μ΄ 곡백 μκ°μ΄ λ°μνμ¬ μ λλ‘ λ μκ°μ΄ νμλμ§ μλ λ¬Έμ κ° μκΈ΄λ€.
μλ₯Ό λ€μ΄ 12μ΄μ μκ°μ λ©μ·λ€κ° λ€μ μμνλ€κ³ νλ€λ©΄ μ νν μκ°μ 12μ΄λΆν° λ€μ μ€ν±μμΉκ° λμκ°μΌ νμ§λ§ μμ κ°μ κ²½μ°λ
λ©μΆ μκ°(m)λ§νΌμ μκ°μ΄ μλΉκ²¨μ Έ (12+m)μ΄λΆν° μ€ν±μμΉκ° λκ² λλ€.
μ΄λ νλ©΄ μμ λλλ§λλ μκ°κ³Ό μ€μ μκ° κ°μ 곡백μκ°μ΄ λνλκΈ°μ λ°μνλ λ¬Έμ μ΄λ€.
μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ startTime κ°μ 곡백 μκ°μ κ°μ°ν΄μ£Όμ΄ μκ°μ μλΉκ²¨μ£Όλ©° ν΄λΉ μ°μ°μμ μ²μ μ½λ°± ν¨μ λ΄μμ endTime(μ€ν±μμΉλ₯Ό λ©μ·μ λμ ν΄λΉ μκ°)μ κ°μ΄ μ‘΄μ¬ν κ²½μ°μ μνλλλ‘ λΆκΈ° μ²λ¦¬ν΄μ€λ€.
곡백μκ°(μ΄λ‘μ μμ) = currentTime_reStart - endTime
μ€ν±μμΉμ νμλλ μκ°(ms λΉ)_reStart = currentTime - (startTime + 곡백μκ°)
if(!stTime) {
stTime = Date.now();
} else {
stTime += (Date.now() - edTime)
}
λ€μκ³Ό κ°μ΄ λΆ(0~), μ΄(0~59), 미리μ΄(0~99) κ° μκ°μ λ²μλ₯Ό ν΅ν΄μλ ꡬν μ μλ€.
ms += 1;
if (ms >= 100) {
ss += 1;
ms = 0;
}
if (ss >= 60) {
mm += 1;
ss = 0;
}
μ°μ°μ ν΅ν΄ μ»μ μκ°μ λ¬Έμ μμ μꡬνλ λ°μ κ°μ΄ νλ©΄ μμ λ¬Έμμ΄ ννλ‘ '00:00:00' λλλ§νκΈ° μν΄μ λ³λμ ν¬νΌ ν¨μ λ΄μμ λ€μκ³Ό κ°μ μ°μ°μ μννλλ‘ νμλ€.
return (num) => {
return (num < 10 ? `0${num}` : `${num}`);
}
// ν΄λΉ ν¬νΌ ν¨μλ μ¦μ μ€ν ν¨μκ° λ°ννλ ν¨μ κ°μ²΄λ₯Ό ν λΉ λ°κ³ μλ€.
// 맀κ°λ³μ numλ ν΄λ‘μ μ μν΄ μμ μ€μ½ν λ΄μ μΊ‘μνλμ΄ μ μ¬λμ΄ μμΌλ©° μ΄ κ°μ νμ¬ μκ°μ΄λ€.
μ 체 μ½λ
https://github.com/choi2601/FastCampus-FrontEnd-Issue/tree/main/case5_stopwatch1
choi2601/FastCampus-FrontEnd-Issue
ν¨μ€νΈμΊ νΌμ€ νλ‘ νΈμλ μ£Όμ μ΄μ νμ΄. Contribute to choi2601/FastCampus-FrontEnd-Issue development by creating an account on GitHub.
github.com
'JS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
JS μμμ HTML λμ μμ± (0) | 2021.07.07 |
---|---|
createDocumentFragment()λ₯Ό ν΅ν μμ μμ± (0) | 2021.07.05 |
window.matchMedia λ©μλ (0) | 2021.07.02 |
Dark-mode (0) | 2021.07.02 |
Intersection Observer APIλ₯Ό ν΅ν μ΄λ²€νΈ μ΅μ ν (0) | 2021.07.01 |