📄 calendar.js
字号:
var now = new Date();
var thisYear=now.getFullYear();
var thisMonth=now.getMonth();
var thisDay =now.getDate();
var curYear=thisYear;
var curMonth=thisMonth;
var curDay=thisDay;
var curDateObj=null; //当前的显示日期对象有Edit
var CurDate="";//当前选择的日期
//显示该日历
// curDateEdit: 当前显示日期Text对象
// x,y : 显示的位置
var oldX=0;
var oldY=0;
var isShowXY=false;
function move_MyCalendaCalendar()
{
if(event.button==1)
{ myCal_Info.style.posLeft+=(event.offsetX-oldX);
myCal_Info.style.posTop+=(event.offsetY-oldY);
if(isShowXY) myXY.innerText=myCal_Info.style.posLeft+"|"+myCal_Info.style.posTop;
}
window.event.returnValue=false;
window.event.cancelBubble=true;
}
function move_MyCalendarDown()
{
oldX=event.offsetX;
oldY=event.offsetY;
}
function move_MyCalendaUp()
{
window.event.returnValue=false;
window.event.cancelBubble=true;
}
function checkMyCalMouseStatus()
{
if(myCal_Info.style.display !="none")
{
x=event.clientX;
y=event.clientY;
xLeft=myCal_Info.style.posLeft;
Width=180;
yTop=myCal_Info.style.posTop;
Height=200;
//alert("x="+x+" y="+y +" xLeft="+xLeft+" yTop=" +yTop+" Height=" +Height +" width=" +Width);
if(!(x>=xLeft && x<=xLeft+Width && y>=yTop && y<=yTop+Height))
myCal_Info.style.display="none";
}
}
function showCalendar(curDateEdit,x,y,isShow)
{
if(typeof(x)=='undefined') x=curDateEdit.style.left+20;
if(typeof(y)=='undefined') y=curDateEdit.style.top;
if(typeof(isShow)=='undefined' || isShow==false)
isShow=false;
else
isShow=true;
isShowXY=isShow;
curDate=curDateEdit.value;
if(curDate.indexOf("-")>1)
var s=curDate.split("-");
else
var s=curDate.split(".");
n=s.length;
curDateObj=curDateEdit;
if(n>0)
curYear=parseInt(s[0],10);
else
curYear=0;
if(isNaN(curYear) || curYear<1800 || curYear>2040) curYear=thisYear;
if(n>0) curMonth=parseInt(s[1],10)-1;
else curMonth=0;
if(isNaN(curMonth) || curMonth<0 || curMonth>11) curMonth=thisMonth;
if(n>2) curDay=parseInt(s[2],10);
else curDay=0;
curDate=curYear +"-"+(curMonth+1)+"-"+curDay;
if(isNaN(curDay) || curDay<0 || curDay>getDays(curMonth,curYear))
curDay=thisDay;
myCal_Info.style.posLeft =x;
myCal_Info.style.posTop =y;
myCal_Info.style.display ="" ;
myCal_Year.focus()
newCalendar();
window.event.returnValue=false;
window.event.cancelBubble=true;
}
//取得Year年month月共多少天
function getDays(month, year)
{
var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30, 31);
if(1 == month)
return ((0 == year % 4) && (0 != (year % 100))) ||(0 == year % 400) ? 29 : 28;
else
return daysInMonth[month];
}
//年份改变时
function changeYear()
{
var n=myCal_Year.value;
if(isNaN(n)) return;
n=parseInt(n,10);
if(n<1800 || n>2040) return;
curYear=n;
newCalendar();
return(false);
}
function calAdd1(obj)
{
var n=parseInt(myCal_Year.value,10);
if(isNaN(n)) //不是数字
n=curYear;
n++;
if(n>2040) n=2040;
if(n<1800) n=1800;
curYear=n;
newCalendar();
return(false);
}
function calSub1()
{
var n=parseInt(myCal_Year.value,10);
if(isNaN(n) || n<1800 || n>2040)
n=curYear;
n--;
if(n<1800) n=1800;
if(n>2040) n=2040;
curYear=n;
newCalendar();
return(false);
}
function calHelp()
{
alert("[页面嵌入日历] 设计:Dragon Jiang(2002-04-19)\n\n移动日历:对着标题,出现移动光标时按下左键,然后拖动\n选择日期:对着某一天点击即可选择\n取消选择:点击标题处的[X]\n色彩说明:加粗的红色表示今天的日期,加粗的蓝色表示当前选择的日期")
return(false);
}
function newCalendar()
{
var newCal = new Date(curYear,curMonth,1);
var startDay = newCal.getDay();//XXXX年X月1日星期x
var daily = 0;//当前显示的日号
myCal_Year.value=curYear;
myCal_Month.value=curMonth+1;
var intDaysInMonth =getDays(curMonth, curYear);
for (var intWeek = 0; intWeek < tableCal.rows.length;intWeek++)
for (var intDay = 0;intDay < tableCal.rows[intWeek].cells.length;intDay++)
{
var cell = tableCal.rows[intWeek].cells[intDay];
if ((intDay == startDay) && (0 == daily)) daily = 1;//开始显示日期
if ((daily > 0) && (daily <= intDaysInMonth))
{
if(curYear==thisYear && curMonth==thisMonth & thisDay==daily)
cell.className = "calToday";
else
if((curYear +"-"+ (curMonth+1) +"-"+ daily)==curDate)
cell.className = "calCurDate";
else
if(intDay==6)cell.className = "calSatday";
else
if (intDay==0)cell.className="calSunday";
else cell.className="calNormal";
cell.innerText = daily;
daily++;
}
else
{ cell.innerText = " ";
cell.className="calNone";
}
}
}
function getDate()
{
var sDate;
if ("TD" == event.srcElement.tagName)
if (" " != event.srcElement.innerText)
{
curDateObj.value = myCal_Year.value + "-" + myCal_Month.value + "-" + event.srcElement.innerText;
myCal_Info.style.display="none";
}
}
document.write (''+
'<div ID=myCal_Info style="position:absolute;z-index:100;width:180px;heigh:200px;background-color:#d0d0c8;display:none" ><div ID=myXY></div>'+
'<fieldset style="WIDTH:180px;HEIGHT:200px;" >'+
'<legend align=left ><div onMouseUp="move_MyCalendaUp()" onMouseMove="move_MyCalendaCalendar();" onMouseDown="move_MyCalendarDown()" style="cursor:move">选择日期([<a href=# onclick="myCal_Info.style.display=\'none\';return(false)" title="关闭"><u>X</u></a>] [<a href=# onclick="return(calHelp())" title="使用帮助"><u>H</u></a>])</div></legend>'+
'<table width=180 cellspacing=0 cellpadding=0>'+
'<tr><td align=middle>'+
'<table width=160 cellspacing=0 cellpadding=0>'+
'<tr>'+
'<td width=60 height=50><select id=myCal_Month style="width: 66; height: 23" onchange="curMonth=parseInt(this.value,10)-1;newCalendar();" size=1 name=Month><option value=1>1月<option value=2>2月<option value=3>3月<option value=4>4月<option value=5>5月<option value=6>6月<option value=7>7月<option value=8>8月<option value=9>9月<option value=10>10月<option value=11>11月<option value=12>12月</option></select></td>'+
'<td width=70 height=50 align=right><input type=text name=myCal_Year size=6 maxlength=4 onchange="changeYear(this);" style="width: 64; height: 21; text-align: right"></td>'+
'<td width=16 height=50><map name=myCal_c_FPMap0>'+
'<area href=# style="cursor:hand" onclick="return(calAdd1());" shape=rect coords="1, 1, 17, 8"><area href=# style="cursor:hand" onclick="return(calSub1());" shape=rect coords="1, 10, 17, 18"></map>'+
'<img border=0 src=/images/System/UpDown.gif usemap=#myCal_c_FPMap0 width=17 height=18></td>'+
'</tr></table>'+
'<table width=161 border=0 cellspacing=0 cellpadding=0 ID=Table3>'+
'<tr align=center>'+
'<td width=23><font color=#ff0000>日</font></td><td width=23>一</td><td width=23>二</td><td width=23>三</td><td width=23>四</td><td width=23>五</td><td width=23><font color=green>六</font></td></tr>'+
'<tr><td colspan=7><hr size=1 style="height:1"></td></tr>'+
'</table>'+
'<table width=161 border=0 cellspacing=0 cellpadding=0 onclick="getDate()" ID=tableCal>'+
'<tr align=center height=16><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><tr>'+
'<tr align=center height=16><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><tr>'+
'<tr align=center height=16><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><tr>'+
'<tr align=center height=16><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><tr>'+
'<tr align=center height=16><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><tr>'+
'<tr align=center height=16><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><td width=23></td><tr>'+
'</table>'+
'</td></tr></table></fieldset></div>');
document.body.onclick=Function("checkMyCalMouseStatus()");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -