자바스크립트 관련 질문입니다.
조회수 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 답변
-
getLastDayInMonth()
함수에 괄호가 부족합니다.switch
를 닫는 괄호만 있고 전체 함수를 닫는 괄호가 없습니다.VSCode, Sublime Text 같은 코드 스니핑이 되는 에디터를 사용하셔서 이런 오류를 피하실 수 있습니다.
온라인으로 자기 JS 소스를 바로 고쳐볼 수 있는 서비스들도 있으니 한번 사용해 보세요.
댓글 입력