<!-- 最精致的日历式日期输入控件 (smart ver 1.00) -->
<html>
<head>
<title>最精致的日历式日期输入控件 (smart ver 1.00)</title>
</head>
<style>
body
{
font-size:12px;
font-family:"tahoma";
}
td
{
font-size:12px;
font-family:"tahoma";
}
.inputdate
{
border:1px solid #7287c6;
text-align: center;
font-size: 12px;
font-style: normal;
height: 16px;
}
</style>
<script language="javascript">
<!--
/********************************************************************
时间:2004-01-01
作者:smart
功能:日历式日期选择控件
参数:
说明:
1.输入框直接调用用以下代码
<script>datebox("inputname","datevalue")<\/script>
其中:inputname 为输入日期的文本框.注:不能为空.
datevalue 为输入日期的文本框默认日期值.格式为:yyyy-mm-dd.如2004-01-01
此值可以不填或为空.则默认值为当天日期.(客户端)
2.其它"按钮"调用用以下代码
calldate("inputname")
其中:inputname 为输入日期的文本框.注:不能为空.
修改区
时间:
修改人:
原因:
********************************************************************/
/*基本参数*/
var frw=106; //日历宽度
var frh=137; //日历高度
var frs=4; //影子大小
var hid=true;//日历是否打开
/*创建框架*/
document.writeln('<div id=calendar author=smart scrolling="no" frameborder=0 style="border:0px solid #eeeeee ;position: absolute; width: '+frw+'; height: '+frh+'; z-index: 0; filter :\'progid:dximagetransform.microsoft.shadow(direction=135,color=#aaaaaa,strength='+frs+')\' ;display: none"></div>');
/*取得今日日期*/
function gettodaydate()
{
today= new date();
y= today.getyear();
m= (today.getmonth() + 1);
if (m<10)
{
m='0'+m;
}
d= today.getdate();
if (d<10)
{
d='0'+d;
}
return y+'-'+m+'-'+d
}
/*输入今天日期*/
function settodaydate(inputbox)
{
hiddencalendar();
inputbox.value=gettodaydate();
}
/*取某年某月第一天的星期值(月份-1)*/
function getfirstweek(the_year,the_month)
{
return (new date(the_year,the_month-1,1)).getday()
}
/*取某年某月中总天数*/
function getthisdays(the_year,the_month)
{
return (new date(the_year,the_month,0)).getdate()
}
/*取某年某月上个月中总天数*/
function getlastdays(the_year,the_month)
{
return (new date(the_year,the_month-1,0)).getdate()
}
/*判断是否是闰年*/
function runnian(the_year)
{
if ((the_year%400==0) || ((the_year%4==0) && (the_year%100!=0)))
return true;
else
return false;
}
/* 判断日期(yyyy-mm-dd)的日期是否正确 */
function dateistrue(asdate){
var lsdate = asdate + "";
var lodate = lsdate.split("-");
if (lodate.length!=3) return false;
var liyear = parsefloat(lodate[0]);
var limonth = parsefloat(lodate[1]);
var liday = parsefloat(lodate[2]);
if ((lodate[0].length>4)||(lodate[1].length>2)||(lodate[2].length>2)) return false;
if (isnan(liyear)||isnan(limonth)||isnan(liday)) return false;
if ((liyear<1800)||(liyear>2500)) return false;
if ((limonth>12)||(limonth<=0)) return false;
if (getthisdays(liyear,limonth)<liday) return false;
return !isnan(date.utc(liyear,limonth,liday));
}
/*取某年某月的周值*/
function getcountweeks(the_year,the_month)
{
var allday;
allday = 0;
if (the_year>2000)
{
for (i=2000 ;i<the_year; i++)
if (runnian(i))
allday += 366;
else
allday += 365;
for (i=2; i<=the_month; i++)
{
switch (i)
{
case 2 :
if (runnian(the_year))
allday += 29;
else
allday += 28;
break;
case 3 : allday += 31; break;
case 4 : allday += 30; break;
case 5 : allday += 31; break;
case 6 : allday += 30; break;
case 7 : allday += 31; break;
case 8 : allday += 31; break;
case 9 : allday += 30; break;
case 10 : allday += 31; break;