πŸ“˜ν΄λ¦°μ½”λ“œ (2022.01.31)

μ‹ μœ€μ² Β·2022λ…„ 1μ›” 31일
0

ν΄λ¦°μ½”λ“œ

λͺ©λ‘ 보기
10/22

DAY 11

μ±…μ—μ„œ 배운 λ‚΄μš© μ‹€μŠ΅

μ½”λ“œ λ¦¬νŒ©ν† λ§

πŸ“‘ μˆ˜μ • μ „ μ½”λ“œ

const merry = document.querySelector(".js-clock");

function getClock() {
const christmas = new Date("2021, 12, 25");
const date = new Date();
const timeGap = christmas - date;

const xDay = Math.floor(timeGap / (1000 * 60 * 60 * 24));
const xHours = Math.floor(
(timeGap - xDay * 1000 * 60 * 60 * 24) / (1000 * 60 * 60)
);
const xMinutes = Math.floor((timeGap % (60 * 60 * 1000)) / (60 * 1000));
const xSeconds = Math.floor((timeGap % (60 * 1000)) / 1000);

const day = String(xDay).padStart(2, "0");
const hours = String(xHours).padStart(2, "0");
const minutes = String(xMinutes).padStart(2, "0");
const seconds = String(xSeconds).padStart(2, "0");

merry.innerText = `${day}d ${hours}h ${minutes}m ${seconds}s`;
}

getClock();
setInterval(getClock, 1000);

πŸ“‘ μˆ˜μ • ν›„ μ½”λ“œ

const untilChrismas = document.querySelector('.js-clock');
const MSEC_TO_SEC = 1000;
const SEC_TO_MIN = 60;
const MIN_TO_HOUR = 60;
const HOUR_TO_DAY = 24;

paintRemainTime();
setInterval(paintRemainTime, 1000);

function paintRemainTime() {
  const { paintingDay, paintingHour, paintingMinute, paintingSecond } = getRemainTime();
  untilChrismas.innerHTML = `${paintingDay}d ${paintingHour}h ${paintingMinute}m ${paintingSecond}s`
}

function getRemainTime() {
  const christmasDate = new Date('2022, 12, 25');
  const nowDate = new Date();
  const msecTimeGap = christmasDate - nowDate;

  const remainSecond = Math.floor(msecTimeGap / MSEC_TO_SEC);
  const remainMinute = Math.floor(remainSecond / SEC_TO_MIN);
  const remainHour = Math.floor(remainMinute / MIN_TO_HOUR);
  const remainDay = Math.floor(remainHour / HOUR_TO_DAY);

  return {
    paintingDay: padStartTwoString(remainDay),
    paintingHour: padStartTwoString(remainHour % 24),
    paintingMinute: padStartTwoString(remainMinute % 60),
    paintingSecond: padStartTwoString(remainSecond % 60),
  };
}

function padStartTwoString(date) {
  return String(date).padStart(2, '0');
}

μˆ˜μ • λ‚΄μ—­

  • date, merry, day, minutes λ“± κ·Έλƒ₯ λ΄€μ„λ•Œ 의미λ₯Ό μ •ν™•νžˆ μ•Œ 수 μ—†λŠ” 이름듀을 μˆ˜μ •ν•˜μ˜€λ‹€.

  • 1000, 60, 24 같이 자주 μ“°μ΄λŠ” μˆ˜λ“€μ˜ 의미λ₯Ό νŒŒμ•…ν•˜κ³  μ •λ¦¬ν•˜κΈ° μœ„ν•΄ μƒμˆ˜λ‘œ μ •μ˜ν•˜μ˜€λ‹€.

  • padStart같은 λ°˜λ³΅ν•΄μ„œ μ‚¬μš©λ˜λŠ” λ©”μ„œλ“œλ₯Ό ν•¨μˆ˜λ‘œ μ •μ˜ν•˜μ˜€λ‹€.

  • μ½”λ“œλ₯Ό 잘 이해할 수 μžˆλ„λ‘ κ³ μ°¨μ›μ—μ„œ μ €μ°¨μ›μœΌλ‘œ λ‘œμ§μ„ κ΅¬ν˜„ν•˜μ˜€λ‹€.

μ±…μ˜ λ‚΄μš©μ„ μ‹€μ œ μ½”λ“œμ— μ μš©ν•΄λ³΄λ‹ˆ μž¬λ―Έλ„ 있고 ν™•μ‹€νžˆ μ½”λ“œκ°€ μ •λ¦¬λ˜λŠ”κ²ƒμ„ 확인할 수 μžˆμ—ˆλ‹€.

profile
기본을 νƒ„νƒ„ν•˜κ²ŒπŸŒ³

0개의 λŒ“κΈ€