편집 기록

편집 기록
  • 프로필 엽토군님의 편집
    날짜2018.11.13

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


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

    <!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>
    
    
    
    
  • 프로필 알 수 없는 사용자님의 편집
    날짜2018.11.13

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


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

    <!DOCTYPE html> 달력 table, th, td { border:1px solid gray; } 년 월 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();