JK的日历:
<html>
<head>
<title>Calendar</title>
<style>
TD,INPUT,SELECT{font-size:10px;}
td.titleTd{background-color:#5661a8;color: #ffffff;text-align:center;font-weight:900;}
td{white-space:nowrap;}
body{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;}
</style>
</head><body scroll=no margin=0 ><table align=center><tr><td width=50% >
<script language=javascript>
document.write("<select id=yearInput onchange='showCalendar()'>");
for (var i=1930;i<2200;i++) document.write("<option value='"+i+"'>"+i+"</option>");
document.write("</select>");
var monthsString = new Array("一月", "二月", "三月","四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"); 
document.write("<select id=monthInput onchange='showCalendar()'>");
for (var i=1;i<13;i++) document.write("<option value='"+i+"'>"+monthsString[i-1]+"</option>");
document.write("</select>");
var yearInput=document.getElementById("yearInput");
var monthInput=document.getElementById("monthInput");</script>
</td><td align=right>
<input type=button value=Today onclick='returnToday();'>&nbsp;
<input type=button value=Empty onclick='returnFun("");'>
</td></tr></table>
<div id="theCalendar" align=center width=100% >
</div>
</body>
</html><script language="javascript">
var theCalendar=document.getElementById("theCalendar");
function showCalendar()
{
 var calHtml=new Array();
 var b=new Date(yearInput.value+"\/"+monthInput.value+"\/"+1);
 var c=new Date(yearInput.value+"\/"+(monthInput.value*1+1)+"\/"+0);
 var theMonthDays=c.getDate();
 var i=0;
 var j=b.getDay();
 var k=1;
 calHtml[calHtml.length]="<table onclick='getTD(event.srcElement||event.target)' onmouseover='changeBgcolor(event.srcElement||event.target)' border=1 style='border: solid 1px #5661a8; font-Size: 9pt; font-family: Arial; background: #e0e3f7' width=100% align=center>";
 calHtml[calHtml.length]="<tr bordercolorlight='#5661a8' bordercolordark='#5661a8' ><td class=titleTd >周日</td><td class=titleTd >周一</td><td class=titleTd >周二</td><td class=titleTd >周三</td><td class=titleTd >周四</td><td class=titleTd >周五</td><td class=titleTd >周六</td></tr><tr>";
 for (j=0;j<b.getDay();j++) calHtml[calHtml.length]="<td>&nbsp;</td>";
 for (i=0;(i<6)&&(k<theMonthDays+1);i++)
 {
  for (j;j<7;j++)
  {
   if (k<theMonthDays+1) 
   { 
    if (j<6&&j>0) calHtml[calHtml.length]="<td bordercolorlight='#5661a8' align='center' >"+(k++)+"</td>";
    else calHtml[calHtml.length]="<td bordercolorlight='#5661a8' align='center' style='color:#ff0000'>"+(k++)+"</td>";
   }
   else  calHtml[calHtml.length]="<td>&nbsp;</td>";
  }
  calHtml[calHtml.length]="</tr><tr >";
  j=0;
 }
 calHtml[calHtml.length]="</tr></table>";
 theCalendar.innerHTML=calHtml.join("");
}

function getTD(obj)
{
 if (obj.tagName!="TD") return false;
 if (isNaN(obj.innerHTML)||(obj.innerHTML==0)) return false;
 var a=yearInput.value+"-"+monthInput.value+"-"+obj.innerHTML;
 returnFun(a);
}

function returnToday()//
{
 var todaydate=new Date();
 var a=todaydate.getFullYear()+"-"+(todaydate.getMonth()+1)+"-"+todaydate.getDate();
 returnFun(a);
} function initCalendar()//
{
 var a=window.dialogArguments;
 if(a==null && window.opener && window.opener.currentDateInputObj) a=window.opener.currentDateInputObj.value;
 var b=new Date();
 if ((a!=null)&&(a.length>4)) b=new Date(a.replace(/\.|-/g,"/"));
 if (isNaN(b)) b=new Date();
 yearInput.value=b.getFullYear();
 monthInput.value=(b.getMonth()+1);
 showCalendar();
}
initCalendar();var theCurrentTd="";//
function changeBgcolor(obj)//
{
 if ((theCurrentTd!=obj)&&(obj.parentNode.rowIndex!=0))
 {
  if(theCurrentTd.tagName=="TD") theCurrentTd.style.background="";
  theCurrentTd=obj;
  if(theCurrentTd.tagName=="TD") theCurrentTd.style.background="#9999ee";
 }
}

function returnFun(dateStr)
{
 var returnDateString="";
 if(dateStr!="")
 {
  var dateStrToDate=new Date(dateStr.replace(/-/g,"/"));
  returnDateString+=dateStrToDate.getFullYear()+"-";
  if(dateStrToDate.getMonth()<9) returnDateString+="0";
  returnDateString+=(dateStrToDate.getMonth()*1+1*1)+"-";
  if(dateStrToDate.getDate()<10) returnDateString+="0";
  returnDateString+=dateStrToDate.getDate();
 }
 window.returnValue=returnDateString;
 if(window.opener ) {
  var dateInputObj=window.opener.currentDateInputObj
  if(dateInputObj!=null){
   dateInputObj.value=returnDateString;
   dateInputObj.select();
   dateInputObj.focus();
  }
 }
 window.close();
}
</script>