코드

html, css

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>기념일 계산</title>

    <link rel="stylesheet" href="css/기념일계산.css" />
  </head>

  <body>
    <div id="container">
      <div class="day1">
        <h2>예담 다닌지</h2>
        <p id="accent" class="accent">며칠?</p>
        <div class="cnt_bar">
          <div class="cnt"></div>
        </div>
      </div>
      <div class="bar">기념일 계산</div>
      <div class="day2">
        <table>
          <tr>
            <td class="item_title">100일</td>
            <td class="intem_date" id="day100"></td>
          </tr>
          <tr>
            <td class="item_title">200일</td>
            <td class="intem_date" id="day200"></td>
          </tr>
          <tr>
            <td class="item_title">1년</td>
            <td class="intem_date" id="day365"></td>
          </tr>
          <tr>
            <td class="item_title">500일</td>
            <td class="intem_date" id="day500"></td>
          </tr>
        </table>
      </div>
    </div>

    <script>
      let now = new Date();
      // 예담 교육 시작일
      let firstDay = new Date("2022-05-09");
      // 예담 교육 종료일
      let lastDay = new Date("2022-11-07");
      // getTime() 으로 ms 로 변경 --> 시간 계산 가능
      let toNow = now.getTime();
      let toFirst = firstDay.getTime();
      let toLast = lastDay.getTime();
      let meetTime = toNow - toFirst;

      // 만난 시간 퍼센티지 구하기
      let totalMeetTime = toLast - toFirst;
      let meetPercent = (meetTime / totalMeetTime) * 100;
      // 퍼센티지로 디스플레이 바 표시
      let a = document.querySelector(".cnt");
      a.style.width = meetPercent + "%";
      a.innerText = meetPercent.toFixed(2) + "%";

      // 만난 시간 -> 일수로 변환
      // ms / 1000 / 60 / 60 / 24
      //         초   분   시   일
      let meetDay = Math.round(meetTime / 1000 / 60 / 60 / 24);
      document.querySelector("#accent").innerHTML = meetDay + "일";

      // 각 기념일 계산
      calcDate(100);
      calcDate(200);
      calcDate(365);
      calcDate(500);

      function calcDate(days) {
        let futureTime = toFirst + days * 1000 * 60 * 60 * 24;
        // 일, 시간 반환
        let futureDay = new Date(futureTime);
        console.log(futureDay);

        let year = futureDay.getFullYear();
        // getMonth() 는 + 1 해줘야
        let month = futureDay.getMonth() + 1;
        let day = futureDay.getDate();
        document.querySelector(
          "#day" + days
        ).innerText = `${year} 년 ${month} 월 ${day} 일`;
      }
    </script>
  </body>
</html>

 

css

@font-face {
  font-family: bm;
  src: url(../font/bamin/BMJUA_ttf.ttf);
}

* {
  font-family: bm;
  font-size: 25px;
}

#container {
  margin: 0 auto;
  width: 55%;
  border: 3px dashed black;
  text-align: center;
  box-sizing: border-box;
}

.day1 {
  height: 300px;
}

h2 {
  font-size: 50px;
  font-weight: 600;
}

.day1 p {
  font-size: 30px;
}

.cnt_bar {
  width: 70%;
  height: 40px;
  margin: 0 auto;
  margin-top: 60px;
  background-color: darkblue;
  border-radius: 5px;
}

.cnt {
  height: 40px;
  background-color: #f6f656;
  border-radius: 5px;
  color: darkblue;
  line-height: 40px;
}

/* .cnt:hover {
  background-color: #f6f656;
} */

.bar {
  background-color: black;
  color: white;
  text-align: left;
  padding: 6px;
}

table {
  margin: 10px auto;
  border-collapse: collapse;
  /* background-color: #f6f656; */
  width: 90%;
}

tr:not(:last-child) {
  border-bottom: 1px solid black;
}

td {
  padding: 20px;
  /* border: 1px solid black; */
}

.intem_date {
  font-size: 22px;
}

 

실행화면

 

 

 

 

 

 

 

- Just Do It -

 

반응형
복사했습니다!