📄 calendar.js
字号:
var Frw=800;
var Frh=137; //????????
var Frs=4; //????????
var Hid=true;//????????????
var srvtoday;
/*????????*/
document.writeln('<Div id=Calendar scrolling="no" frameborder=0 style="border:0px solid #E0E3F7 ;position: absolute; width: '+Frw+'; height: '+Frh+'; z-index: 0; filter :\'progid:DXImageTransform.Microsoft.Shadow(direction=135,color=#AAAAAA,strength='+Frs+')\' ;display: none"></Div>');
/*????????????*/
function getToday()
{
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=svrtoday;
}
/*????????????????????????(????-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 checkDate(asDate){
if (asDate.length!=10)return false;
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<1980)||(liYear>2100))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;
case 11 : Allday += 30; break;
case 12 : Allday += 31; break;
}
}
}
return (Allday+6)%7;
}
/*??????????*/
function InputValue(InputBox,Year,Month,Day)
{
if (Month<10)
{
Month='0'+Month
}
if (Day<10)
{
Day='0'+Day;
}
InputBox.value=Year+"-"+Month+"-"+Day;
}
//??????
function ForwardMonth(InputBox,Year,Month,Day)
{
Month=Month-1;
if (Month<1)
{
Month=12;
Year=Year-1;
if (Year<1980)
Year=2100;
}
Day=((GetThisDays(Year,Month)<Day)?GetThisDays(Year,Month):Day);
Hid=false;
ShowCalendar(InputBox,Year,Month,Day);
}
//??????
function NextMonth(InputBox,Year,Month,Day)
{
Month=Month+1;
if (Month>12)
{
Month=1;
Year=Year+1;
if (Year>2100)
Year=1980;
}
Day=((GetThisDays(Year,Month)<Day)?GetThisDays(Year,Month):Day);
Hid=false;
ShowCalendar(InputBox,Year,Month,Day);
}
//??????
function ForwardYear(InputBox,Year,Month,Day)
{
Year=Year-1;
if (Year<1980)
Year=2100;
Day=((GetThisDays(Year,Month)<Day)?GetThisDays(Year,Month):Day);
Hid=false;
ShowCalendar(InputBox,Year,Month,Day);
}
//??????
function NextYear(InputBox,Year,Month,Day)
{
Year=Year+1;
if (Year>2100)
Year=1980;
Day=((GetThisDays(Year,Month)<Day)?GetThisDays(Year,Month):Day);
Hid=false;
ShowCalendar(InputBox,Year,Month,Day);
}
/*????????????????*/
function OpenDate(where)
{
GetCalendar(where)
}
/*??????????????????????????*/
function GetCalendar(where)
{
Hid=false;
var Box_Name=where.name;
var Box_value=where.value;
if (checkDate(Box_value))
{
loDate = Box_value.split("-");
Y= parseFloat(loDate[0]);
M= parseFloat(loDate[1]);
D= parseFloat(loDate[2]);
ShowCalendar(where,Y,M,D);
}
else
{
today= new Date();
y= today.getYear();
m= (today.getMonth()+ 1);
d=today.getDate();
ShowCalendar(where,y,m,d);
}
}
/*????????*/
function HiddenCalendar()
{
document.all.Calendar.style.display="none";
}
function CloseCalendar()
{
if (Hid)
document.all.Calendar.style.display="none";
Hid=true;
}
/*????????*/
function ShowCalendar(InputBox,The_Year,The_Month,The_Day)
{
var Now_Year=(The_Year==null?2004:The_Year);
var Now_Month=(The_Month==null?1:The_Month);
var Now_Day=(The_Day==null?1:The_Day);
var Box_Name='document.all.'+InputBox.name;
var fw=GetFirstWeek(Now_Year,Now_Month);
var ld=GetLastDays(Now_Year,Now_Month);
var td=GetThisDays(Now_Year,Now_Month);
var isnd=false;//??????????????????
var d=1,w=1;
var FrameContent;
var Frl,Frt,Winw,Winh;
/*??????????*/
Winw=document.body.offsetWidth;
Winh=document.body.offsetHeight;
Frl=InputBox.getBoundingClientRect().left-2;
Frt=InputBox.getBoundingClientRect().top+InputBox.clientHeight;
if (((Frl+Frw+Frs)>Winw)&&(Frw+Frs<Winw))
Frl=Winw-Frw-Frs;
if ((Frt+Frh+Frs>Winh)&&(Frh+Frs<Winh))
Frt=Winh-Frh-Frs;
document.all.Calendar.style.display="";
document.all.Calendar.style.left=Frl;
document.all.Calendar.style.top=Frt;
//????????????
FrameContent="\n<table onselectstart=\"return false;\" border='0' cellpadding='0' cellspacing='0' bgcolor='#0066B3' width='100%' height='15' style=\"color:white;font-weight:bolder;border:0px solid\">"+"\n<tr>\n";
FrameContent+="<td width=8>";
FrameContent+="<img src='/images/pre.gif' width='24' height='11' border='0' alt='??????' style='cursor:hand' onclick=\"ForwardYear (document.all."+InputBox.name+","+Now_Year+","+Now_Month+","+Now_Day+")\">";
FrameContent+="</td>\n";
FrameContent+="<td vAlign=middle align='center'>";
FrameContent+=Now_Year;
FrameContent+=" ??";
FrameContent+="</td>\n";
FrameContent+="<td width=8>";
FrameContent+="<img src='/images/next.gif' width='24' height='11' border='0' alt='??????' style='cursor:hand' onclick=\"NextYear (document.all."+InputBox.name+","+Now_Year+","+Now_Month+","+Now_Day+")\">";
FrameContent+="</td>\n";
FrameContent+="<td width=8>";
FrameContent+="<img src='/images/pre.gif' width='24' height='11' border='0' alt='??????' style='cursor:hand' onclick=\"ForwardMonth (document.all."+InputBox.name+","+Now_Year+","+Now_Month+","+Now_Day+")\">";
FrameContent+="</td>\n";
FrameContent+="<td vAlign=middle align='center' width='16'>";
FrameContent+=Now_Month;
FrameContent+="</td>\n";
FrameContent+="<td vAlign=middle align='center' width='13'>";
FrameContent+=" ??";
FrameContent+="</td>\n";
FrameContent+="<td width=8>";
FrameContent+="<img src='/images/next.gif' width='24' height='11' border='0' alt='??????' style='cursor:hand' onclick=\"NextMonth (document.all."+InputBox.name+","+Now_Year+","+Now_Month+","+Now_Day+")\">";
FrameContent+="</td>"+"\n";
FrameContent+="</tr>"+"\n";
FrameContent+="</table>"+"\n";
FrameContent+="<table onselectstart=\"return false;\" border='0' cellpadding='0' cellspacing='1' width='100%' bgcolor='#CCCCCC'>"+"\n";
FrameContent+="<tr bgcolor='#F5F5F5'>"+"\n";
FrameContent+="<td><center>??</center></td>"+"\n";
FrameContent+="<td><center>??</center></td>"+"\n";
FrameContent+="<td><center>??</center></td>"+"\n";
FrameContent+="<td><center>??</center></td>"+"\n";
FrameContent+="<td><center>??</center></td>"+"\n";
FrameContent+="<td><center><font color='#FF0000'>??</font></center></td>"+"\n";
FrameContent+="<td><center><font color='#FF0000'>??</font></center></td>"+"\n";
FrameContent+="</tr>"+"\n";
//??????????????????????????????.????????.????????????????????????
if (fw<2)
tf=fw+7;
else
tf=fw;
FrameContent+="<tr bgcolor='#FFFFFF'>"+"\n";
//??????????????
for (l=(ld-tf+2);l<=ld;l++)
{
FrameContent+="<td onclick=\"ForwardMonth (document.all."+InputBox.name+","+Now_Year+","+Now_Month+","+l+")\" style='cursor:hand'><center><font color='#BBBBBB'>"+l+"</font></center></td>"+"\n";
w++;
}
//??????????????
for (f=tf;f<=7;f++)
{
//??????????????????
if ((((w%7)==0)||((w%7)==6))&&(d!=Now_Day))
FrameContent+="<td onMouseOver=\"this.style.background=\'#E1E1E1\'\" onMouseOut=\"this.style.background=\'#FFFFFF\'\" onClick=\"InputValue(document.all."+InputBox.name+","+Now_Year+","+Now_Month+","+d+");HiddenCalendar()\" style='cursor:hand'><center><font color='#FF0000'>"+d+"</font></center></td>"+"\n";
//??????????????
else if (d==Now_Day)
FrameContent+="<td style=\"background:#420042;cursor:hand\" onClick=\"InputValue(document.all."+InputBox.name+","+Now_Year+","+Now_Month+","+d+");HiddenCalendar()\"><center><font color='#FFFFFF'>"+d+"</font></center></td>"+"\n";
//????
else
FrameContent+="<td onMouseOver=\"this.style.background=\'#E1E1E1\'\" onMouseOut=\"this.style.background=\'#FFFFFF\'\" onClick=\"InputValue(document.all."+InputBox.name+","+Now_Year+","+Now_Month+","+d+");HiddenCalendar()\" style='cursor:hand'><center>"+d+"</center></td>"+"\n";
d++;
w++;
}
FrameContent+="</tr>"+"\n";
w=1;
for (i=2;i<7;i++)
{
FrameContent+="<tr bgcolor='#FFFFFF'>"+"\n";
for (j=1;j<8;j++)
{
if (isnd)//????????????
FrameContent+="<td style='cursor:hand' onclick=\"NextMonth (document.all."+InputBox.name+","+Now_Year+","+Now_Month+","+d+")\"><center><font color='#BBBBBB'>"+d+"</font></center></td>"+"\n";
else//??????????
{
//??????????????????
if ((((w%7)==0)||((w%7)==6))&&(d!=Now_Day))
FrameContent+="<td onMouseOver=\"this.style.background=\'#E1E1E1\'\" onMouseOut=\"this.style.background=\'#FFFFFF\'\" onClick=\"InputValue(document.all."+InputBox.name+","+Now_Year+","+Now_Month+","+d+");HiddenCalendar()\" style='cursor:hand'><center><font color='#FF0000'>"+d+"</font></center></td>"+"\n";
//??????????????
else if (d==Now_Day)
FrameContent+="<td style=\"background:#420042;cursor:hand\" onClick=\"InputValue(document.all."+InputBox.name+","+Now_Year+","+Now_Month+","+d+");HiddenCalendar()\"><center><font color='#FFFFFF'>"+d+"</font></center></td>"+"\n";
//????
else
FrameContent+="<td onMouseOver=\"this.style.background=\'#E1E1E1\'\" onMouseOut=\"this.style.background=\'#FFFFFF\'\" onClick=\"InputValue(document.all."+InputBox.name+","+Now_Year+","+Now_Month+","+d+");HiddenCalendar()\" style='cursor:hand'><center>"+d+"</center></td>"+"\n";
}
//????????????????????
if (d==td)
{
isnd=true;
d=0;
}
w++;
d++;
}
FrameContent+="</tr>"+"\n";
}
FrameContent+="</table>"+"\n";
FrameContent+="<table onselectstart=\"return false;\" cellpadding='0' cellspacing='0' bgcolor='#F5F5F5' width='100%' height='15'>"+"\n<tr>\n";
FrameContent+="<td title=\"??????"+svrtoday+"\" style=\"cursor:hand\" onclick=\"SetTodayDate(document.all."+InputBox.name+")\">";
FrameContent+="<font color=red>??????</font>"+svrtoday;
FrameContent+="</td>\n";
FrameContent+="<td>";
FrameContent+="<img src='/images/close.gif' width='13' height='13' border='0' alt='????' style='cursor:hand' onclick=\"HiddenCalendar()\">";
FrameContent+="</td>\n";
FrameContent+="</tr>\n";
document.all.Calendar.innerHTML=FrameContent;
document.all.Calendar.style.display="";
}
/*??????????*/
function DateBox(boxName, inDate,inSvrToday)
{
if (boxName==null)boxName='date_box';
if ((inSvrToday==null)||!(checkDate(inSvrToday)))svrtoday=getToday();
else svrtoday=inSvrToday;
if ((inDate==null)||!(checkDate(inDate)))inDate= svrtoday;
else
{
DateStr = inDate.split("-");
Y= parseFloat(DateStr[0]);
M= (parseFloat(DateStr[1])<10)?('0'+parseFloat(DateStr[1])):parseFloat(DateStr[1]);
D= (parseFloat(DateStr[2])<10)?('0'+parseFloat(DateStr[2])):parseFloat(DateStr[2]);
inDate=Y+'-'+M+'-'+D;
}
document.write("<input size='10' name='"+boxName+"' value='"+inDate+"' onclick='GetCalendar(window.document.all."+boxName+")' >");
}
document.onclick = CloseCalendar;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -