자바스크립트 관련 질문입니다.

조회수 1435회

프로그램을 다짰다고 생각하는데 실행이 안되네요ㅜ 고수님들 조언 주시면 정말 감사하겠습니다.

<!DOCTYPE html> 
<html lang="ko">
<head> 
    <title>달력</title> 
    <meta charset="utf-8"/>
    <style>
        table, th, td { border:1px solid gray; }
    </style>
</head>
<body>
<input type="text" id="year" value="2018" size="5">년
<input type="text" id="month" value="11" size="3">월
<input type="button" onClick="display_calendar();" value="달력보기">
<br>
<br>
<script>
var dateNow = new Date();
var month = dateNow.getMonth();
var day = dateNow.getDate();
var year = dateNow.getFullYear();


function createTable(row, col)
{
    var body = document.body;
    var tbl = document.createElement('table');

    var tbdy = document.createElement('tbody');
    for (var i = 0; i < row; i++)
    {
        var tr = document.createElement('tr');
        for (var j = 0; j < col; j++)
        {
            var td = document.createElement('td');
    td.appendChild(document.createTextNode(i+','+j));

            tr.appendChild(td);
        }
        tbdy.appendChild(tr);
    }
    tbl.appendChild(tbdy);
    body.appendChild(tbl);
}

function setValue(row, col, val)
{
    var tbl = document.getElementsByTagName('table')[0];
    var r = tbl.rows[row].cells[col].textContent = val;

}

function deleteAllTable()
{
    var tbl_count = document.getElementsByTagName('table').length;
    var body = document.body;
    for (var i = 0; i < tbl_count; i++)
    {
        body.removeChild(document.getElementsByTagName('table')[0]);
    }
}

function getLastDayInMonth(year, month)
{
    switch(month){

    case 4 :
    case 6 : 
    case 9 :
    case 11:
        return 30;

    case 2 :
        if((year%4==0&&year%100!=0)||year%400==0)
            return 29;
        else 
            return 28;
        break;

    default:
        return 31;  
}

function make_calendar(year, month)
{
var cal_title = [ '일', '월', '화', '수', '목', '금', '토' ];
    for (var i = 0; i < cal_title.length; i++)
    {
        setValue(0, i, cal_title[i]);
    }

    var thisDate = new Date(year, (month-1), 1, 0, 0, 0, 0);
    var thisYear = thisDate.getFullYear();
    var thisMonth = thisDate.getMonth();
    var startDate = thisDate.getDay();

    var cnt = startDate;
    var j = 1;

    for (var i = 0; i < getLastDayInMonth(thisYear, thisMonth); i++)
    {
        if(cnt>6)
        {
            cnt =0;
            j++;
        }
        setValue(j, cnt, (i+1));
        cnt++;
    }
}

function display_calendar()
{
    deleteAllTable();
    createTable(7,7);
    make_calendar(year, month);

}

display_calendar();

</script>


</body>
</html>



1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)