- 현재 시각을 십이지시로 바꿔보자 Ver.JS2024년 02월 12일
- Lv. 34 라이츄
- 작성자
- 2024.02.12.:09
https://koreanraichu.tistory.com/364
여기서 했던 그거 맞다. 근데 실시간 시계는 안됨… setInterval 찾아봤는데 지금 코드 상태로는 안되고 실시간 시계는 죄다 함수 때려박은거라 아예 코드를 엎어야 할 수준이더라… 였는데 결국 해결 봤다.
const currentTime = document.querySelector(".currenttime"); const earthBranch = document.querySelector(".earthbranches");
일단 가져올 건 현재 시각 표시할거랑 십이지시 나타낼거 두 개밖에 없다.
function getCurtime() { let today = new Date; let todayYear = today.getFullYear(); let todayMonth = today.getMonth() + 1; let todayDate = today.getDate(); let todayHour = today.getHours(); let todayMinute = today.getMinutes(); let todaySecond = today.getSeconds(); currentTime.innerText = `지금은 ${todayYear}년 ${todayMonth}월 ${todayDate}일 ${todayHour}시 ${todayMinute}분 ${todaySecond}초 입니다. `; }
원래 함수 아니었는데 함수로 묶어버린 첫 번째 요소가 바로 이것. 현재 시각(년월일시분초)을 가져온 다음 DOM에 정해진 형식으로 표시한다.
function getEarthbranch(){ let today = new Date; let todayHour = today.getHours(); if (todayHour >= 1 && todayHour < 3) { earthBranch.innerText = '십이지시로 바꾸면 축(丑)시입니다. ' } else if (todayHour >= 3 && todayHour < 5) { earthBranch.innerText = '십이지시로 바꾸면 인(寅)시입니다. ' } else if (todayHour >= 5 && todayHour < 7) { earthBranch.innerText = '십이지시로 바꾸면 묘(卯)시입니다. ' } else if (todayHour >= 7 && todayHour < 9) { earthBranch.innerText = '십이지시로 바꾸면 진(辰)시입니다. ' } else if (todayHour >= 9 && todayHour < 11) { earthBranch.innerText = '십이지시로 바꾸면 사(巳)시입니다. ' } else if (todayHour >= 11 && todayHour < 13) { earthBranch.innerText = '십이지시로 바꾸면 오(午)시입니다. ' } else if (todayHour >= 13 && todayHour < 15) { earthBranch.innerText = '십이지시로 바꾸면 미(未)시입니다. ' } else if (todayHour >= 15 && todayHour < 17) { earthBranch.innerText = '십이지시로 바꾸면 신(申)시입니다. ' } else if (todayHour >= 17 && todayHour < 19) { earthBranch.innerText = '십이지시로 바꾸면 유(酉)시입니다. ' } else if (todayHour >= 19 && todayHour < 21) { earthBranch.innerText = '십이지시로 바꾸면 술(戌)시입니다. ' } else if (todayHour >= 21 && todayHour < 23) { earthBranch.innerText = '십이지시로 바꾸면 해(亥)시입니다. ' } else if (todayHour == 0 && todayMinute == 0) { earthBranch.innerText = '십이지시로 바꾸면 자(子)시입니다. 0시 0분이므로 자정이네요. ' } else if (todayHour == 12 && todayMinute == 0) { earthBranch.innerText = '십이지시로 바꾸면 오(午)시입니다. 12시 0분이므로 정오네요. ' } else { earthBranch.innerText = '십이지시로 바꾸면 자(子)시입니다. ' } }
현재 '시'에 따라 해당하는 십이지시를 출력하는 코드인데, 파이썬과 달리 두 가지가 추가되었다. 일단 0시 0분에는 자정, 12시 0분에는 정오라고 별도의 멘트가 뜨게 된다.
getCurtime(); setInterval(getCurtime, 1000); getEarthbranch(); setInterval(getEarthbranch, 1000);
이거는 실시간 시계를 만들기 위해 필요하다. setInterval()을 통해 현재 시각을 가져오는 함수와 그걸 십이지시로 바꾸는 함수를 1초 간격으로 실행하는거다. 아래꺼는 원래 setInterval() 안했었는데 10시에서 11시 넘어가는데 십이지시가 자동으로 안바뀌더라고.
그래서 이렇게 됐다. CSS는 wrapper랑 웹폰트 외에 아무것도 안 줬다.
'Coding > JavaScript' 카테고리의 다른 글
자바스크립트향 첨가 드롭다운 메뉴 (0) 2024.04.21 [HTML 요소] 체크박스 (0) 2024.04.09 테마 변경을 해 보자(feat. 라디오 버튼) (0) 2024.02.10 자바스크립트로 랜덤 아이디 생성기를 만들어보자 (0) 2024.02.03 자바스크립트로 계산기를 만들어보자 (0) 2024.01.30 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)