웹페이지

JAVASCRIPT STEP 45 - Calendar

2023. 4. 28. 14:10
728x90

★ Calendar, 달력 만들기

  • HTML 코드
<div id="header">
    <h1 id="date"></h1>
    <div>
        <input type="button" value="이전달" id="btnprev">
        <input type="button" value="현재" id="btnnow">
        <input type="button" value="다음달" id="btnnext">
    </div>
</div>

<table id="tbl" class="table">
    <thead>
        <tr>
            <th>일</th>
            <th>월</th>
            <th>화</th>
            <th>수</th>
            <th>목</th>
            <th>금</th>
            <th>토</th>
        </tr>
    </thead>
    <tbody></tbody>
</table>
  • CSS 코드
<style>
    body {
        background-color: rgb(253, 253, 196);
    }
    #header {
        width : 800px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin:  0 auto;
    }

    #tbl {
        width : 800px;
        margin:  0 auto;
    }

    #tbl td {
        text-align: center;
        height: 100px;
        background-color: rgb(245, 230, 205);
        font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    }

    #tbl th {
        background-color: rgb(253, 217, 171);
        font-weight: bold;
    }

    #btnprev, #btnnow, #btnnext {
        font-weight: bold;
    }

</style>
  • JavaScript
<script>

    const date = document.getElementById('date');
    const btnprev = document.getElementById('btnprev');
    const btnnow = document.getElementById('btnnow');
    const btnnext = document.getElementById('btnnext');
    const tbody = document.querySelector('#tbl tbody');

    let year, month;

    let now = new Date();
    year = now.getFullYear();
    month = now.getMonth();

    function createCalendar(year, month) {

        date.textContent = year + '.' + (month+1);

        //달력 만들기
        //1. 해당월의 마지막 날짜
        //2. 해당월 1일의 요일

        //보고 싶은 달력의 1일
        let lastDate = new Date(year, month+1, 0).getDate();
        let firstDay = new Date(year, month, 1).getDay();
        // console.log(firstDay);

        //날짜 생성

        let temp = '<tr>';

        for (let i=0; i<firstDay; i++) {
            temp += '<td></td>';
        }

        for (let i=1; i<=lastDate; i++) {

            temp += '<td>';
            temp += i;
            temp += '</td>';

            //출력 날짜 == 토요일 
            if ((i + firstDay) % 7 == 0) {
                temp += '</tr><tr>';
            }

        }

        //날짜없는 빈 셀 만들기

        let lastDateDay = new Date(year, month+1, 0).getDay();

        for (let i=0; i<6-lastDateDay; i++) {
            temp += '<td></td>';
        }

        temp += '</tr>';

        tbody.innerHTML = temp;

    }

    createCalendar(year, month); //현재 달 출력

    btnprev.onclick = () => {
        now.setMonth(now.getMonth() - 1) //이전달
        year = now.getFullYear();
        month = now.getMonth();
        createCalendar(year, month);
    };

    btnnow.onclick = () => {
        now = new Date();
        year = now.getFullYear();
        month = now.getMonth();
        createCalendar(year, month);
    };

    btnnext.onclick = () => {
        now.setMonth(now.getMonth() + 1) //다음달
        year = now.getFullYear();
        month = now.getMonth();
        createCalendar(year, month);
    };

</script>
  • 실행 결과

Calendar 실행 결과

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'웹페이지' 카테고리의 다른 글

JAVASCRIPT STEP 47 - STYLE 다양한 알고리즘 - 1  (3) 2023.04.28
JAVASCRIPT STEP 46 - Scroll  (0) 2023.04.28
JAVASCRIPT STEP 44 - CSS  (0) 2023.04.28
JAVASCRIPT STEP 43 - CSS(JAVASCRIPT ver)  (0) 2023.04.27
JAVASCRIPT STEP 42 - Template, Event  (0) 2023.04.27
'웹페이지' 카테고리의 다른 글
  • JAVASCRIPT STEP 47 - STYLE 다양한 알고리즘 - 1
  • JAVASCRIPT STEP 46 - Scroll
  • JAVASCRIPT STEP 44 - CSS
  • JAVASCRIPT STEP 43 - CSS(JAVASCRIPT ver)
IT의 큰손
IT의 큰손
IT계의 큰손이 되고 싶은 개린이의 Log 일지
IT의 큰손
Developer Story House
IT의 큰손
전체
오늘
어제
  • 분류 전체보기 (457)
    • 정보처리기사 필기 (18)
    • 정보처리기사 실기 (12)
    • 정보처리기사 통합 QUIZ (12)
    • 빅데이터 (11)
    • 안드로이드 (11)
    • 웹페이지 (108)
    • 자바 (49)
    • SQLD (3)
    • 백준 알고리즘 (76)
    • 데이터베이스 (41)
    • 깃허브 (2)
    • Library (14)
    • Server (31)
    • 크롤링&스크래핑 (3)
    • Spring (23)
    • Vue.js (13)
    • React (27)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Developer Stroy House

인기 글

태그

  • jquery
  • IT개발자
  • 웹개발
  • 프론트엔드
  • DBA
  • 데이터베이스
  • html
  • css
  • IT자격증공부
  • java
  • 코딩테스트
  • React
  • 자바
  • JavaScript
  • 앱개발자
  • 정보처리기사
  • IT자격증
  • it
  • 정보보안전문가
  • 웹개발자
  • 개발자
  • 백준
  • DB
  • 웹페이지
  • jsp
  • 개발블로그
  • ajax
  • 알고리즘
  • 백엔드
  • 정보처리기사필기

최근 댓글

최근 글

Designed By hELLO
IT의 큰손
JAVASCRIPT STEP 45 - Calendar
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.