IT_Programming/JavaScript

자바스크립트로 달력 만들기

JJun ™ 2007. 2. 13. 12:40

<html>
<head>
<title></title>

<script language="javascript">
<!--
//시간을 읽어와서 오전/오후로 브라우저에 보여줄 수 있게 해줍니다.
function get_Time()
{
 var now = new Date()
 
 var hour = now.getHours()
 var minute = now.getMinutes()
 var ampm
 
 now = null

 if (hour >= 12) {
   hour -= 12
   ampm = "오후"
 }  else
   ampm = "오전"
 
 hour = (hour == 0) ? 12 : hour

 if (minute < 10)
  minute = "0" + minute

 return ampm + hour + " : " + minute
}

//년과 달을 받아서 마지막 일을 알아냅니다.
function get_Day(year, month)
{
 var Last_Mon = new Array(31,29,31,30,31,30,31,31,30,31,30,31)
 var Mon2

 if (year % 4 == 0)
  Mon2 = true
 else
  Mon2 = false

 Last_Mon[1]= (Mon2) ? 29 : 28

 return Last_Mon[month]
}

//table 태그를 이용해 달력을 만들어 줍니다.
function drawCal(firstDay, lastDate, date, year, monthName)
{
 var text = " "

 text += "<center>"
 text += "<table>"
 text += "<TH COLSPAN=7 BGCOLOR=#F0F0F0>"
 text += "<FONT COLOR=MIDNIGHTBLUE SIZE=+3>"
 
//년과 월을 출력합니다.
 text += year + "년" + (monthName +1) + "월"
 text += "<font>"
 text += "</th>"

 var openCol = "<TD BGCOLOR=#E7F0FF WIDTH=70 HEIGHT=60>"
 openCol += "<FONT COLOR=darkblue>"

 var closeCol = "</font></td>"
 text += "<tr align=center valign=center>"

 var weekDay = new Array("일","월","화","수","목","금","토")

 //달력의 일, 월, 화, 수, 목, 금, 토, 일을 출력합니다.
  for (var dayNum = 0 ; dayNum <=6 ; dayNum++)
  text += openCol + weekDay[dayNum] + closeCol
 
 text += "</tr>"

 var digit = 1
 var curCell = 1

 //달력 표를 만들어 줍니다.
 for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7);++row)
 {
  text += "<tr align=center valign=top bgcolor=#E7F0FF>"

  for (var col=1; col <= 7 ; col++)
  {
   if (digit > lastDate)  break

   if (curCell < firstDay)
   {
    text += "<td>    </td>"
    curCell++
   }
   else
   {
    if (digit == date)
    {
     text += "<td height=60>"
     text += "<font color=red>"
     text += digit
     text += "</font><br>"
     text += "<font color=purple size=2>"
     text += "<center>" + get_Time() + "</center>"
     text += "</font>"
     text += "</td>"
    }
    else
     text += "<td height=60>" + digit + "</td>"
    digit++
   }
  }
  text += "</tr>"
 }
 text += "</table>"
 text += "</center>"
 return text
}

//-->
</script>

</head>

<body>
<script language="javascript">
<!--
var now = new Date()
var year = now.getYear()
var month = now.getMonth()
var date = now.getDate()
var my_text

now = null

//익스플로러가 아니면 1900을 year에 붙여 줍니다.
if (navigator.userAgent.indexOf("MSIE") == -1)
 year = 1900 + year

var firstDayInstance = new Date(year, month, 1)
var firstDay = firstDayInstance.getDay() +1

var days = get_Day(year, month)  //달의 마지막 일을 구합니다.

my_text = drawCal(firstDay, days, date, year, month)

//최종적으로 만들어진 HTML문서를 브라우저에 출력합니다.
document.write (my_text)
//-->
</script>
</body>
</html>