📄 calendar.js
字号:
var zz, zv, d, fTSR;
var gBF=false;
var g_MINY = 1601;
var g_MAXY = 4500;
var g_month = 0;
var g_day = 0;
var g_year = 0;
var g_yLow = 1990;
var g_eC=null;
var g_eCV="";
var g_dFmt=GetDateFmt();
var g_fnCB=null;
var rgMC = new Array(12);
rgMC[0] = 31;rgMC[1] = 28;rgMC[2] = 31;rgMC[3] = 30;rgMC[4] = 31;rgMC[5] = 30;rgMC[6] = 31;rgMC[7] = 31;rgMC[8] = 30;rgMC[9] = 31;rgMC[10] = 30;rgMC[11] = 31;
d = new Date();
fTSR=0;
zv = d.getTime();
zz = "&zz="+zv;
function GetDowStart() {return 0;}
// 日期格式
function GetDateFmt()
{
// return "mmddyy";
return "yymmdd";
}
// 年月日之间的分隔符为“-”
function GetDateSep()
{
return "-";
}
function GetInputDate(t,f)
{
var l = t.length;
if(0 == l) return false;
var cSp = '\0';
var sSp1 = "";
var sSp2 = "";
for(var i = 0; i < t.length; i++)
{
var c = t.charAt(i);
if(c == ' ' || isdigit(c))
continue;
else if(cSp == '\0' && (c == '/' || c == '-' || c == '.'))
{
cSp = c;
sSp1 = t.substring(i+1,l);
}
else if(c == cSp)
sSp2 = t.substring(i+1,l);
else if(c != cSp)
return false;
}
if(0 == sSp1.length) return false;
var m;
var d;
var y;
if(f=="mmddyy")
{
m = atoi(t);
d = atoi(sSp1);
if(0 != sSp2.length)
y = atoi(sSp2);
else
y = DefYr(m,d);
}
else if(f=="ddmmyy")
{
m = atoi(sSp1);
d = atoi(t);
if(0 != sSp2.length)
y = atoi(sSp2);
else
y = DefYr(m,d);
}
else if (f=="yymmdd") // 增加yymmdd的处理
{
// alert("here");
y = atoi(t);
m = atoi(sSp1);
if (0!=sSp2.length)
{
d = atoi(sSp2);
}
else
d = DefYr(m,d);
}
else
{
if(0 == sSp2.length) return false;
m = atoi(sSp1);
d = atoi(sSp2);
y = atoi(t);
}
if(y < 100)
{
y = 1900+y;
while(y < g_yLow)
y = y+100;
}
if(y < g_MINY || y > g_MAXY || m < 1 || m > 12)
return false;
if(d < 1 || d > GetMonthCount(m,y))
return false;
g_month = m;
g_day = d;
g_year = y;
return true;
}
function DefYr(m,d)
{
var dt = new Date();
var yCur = (dt.getYear() < 1000) ? 1900+dt.getYear() : dt.getYear();
if(m-1 < dt.getMonth() || (m-1 == dt.getMonth() && d < dt.getDate()))
return 1+yCur;
else return
yCur;
}
function atoi(s)
{
var t = 0;
for(var i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if(!isdigit(c))
return t;
else
t = t*10 + (c-'0');
}
return t;
}
function isdigit(c)
{
return(c >= '0' && c <= '9');
}
function GetMonthCount(m,y)
{
var c = rgMC[m-1];
if((2 == m) && IsLeapYear(y))
c++;
return c;
}
function IsLeapYear(y)
{
if(0 == y % 4 && ((y % 100 != 0) || (y % 400 == 0)))
return true;
else
return false;
}
//function ShowCalendar(eP,eD,eDP,dmin,dmax,fnCB)
function ShowCalendar(eP,eD,eDP,fnCB)
{
var dseed = new Date();
dmin = new Date(dseed.getFullYear()-100,1,1);
dmax = new Date(dseed.getFullYear()+100, 1, 1);
var dF=document.all.CalFrame;
var wF=window.frames.CalFrame;
if(null==wF.g_fCalLoaded || false==wF.g_fCalLoaded)
{
alert("Unable to load popup calendar.\r\nPlease reload the page.");
return;
}
wF.SetMinMax(new Date(dmin), new Date(dmax));
g_fnCB=fnCB;
if(eD==g_eC && "block"==dF.style.display)
{
if(g_eCV != eD.value && GetInputDate(eD.value,g_dFmt))
{
wF.SetInputDate(g_day,g_month,g_year);
//alert("SetDate in ShowCalendar * 1");
wF.SetDate(g_day,g_month,g_year);
g_eCV=eD.value;
}
else
dF.style.display="none";
}
else
{
if(GetInputDate(eD.value,g_dFmt))
{
wF.SetInputDate(g_day,g_month,g_year);
//alert("SetDate in ShowCalendar * 2");
wF.SetDate(g_day,g_month,g_year);
}
else if(null != eDP && GetInputDate(eDP.value,g_dFmt))
{
wF.SetInputDate(g_day,g_month,g_year);
//alert("SetDate in ShowCalendar * 3");
wF.SetDate(g_day,g_month,g_year);
}
else
{
//var dt=new Date(dmin);
var dt=new Date();
wF.SetInputDate(-1,-1,-1);
//alert("dt="+dt);
wF.SetDate(dt.getDate(),dt.getMonth()+1,dt.getFullYear());
}
var eL=0;var eT=0;
for(var p=eP; p&&p.tagName!='BODY'; p=p.offsetParent)
{
eL+=p.offsetLeft;
eT+=p.offsetTop;
}
var eH=eP.offsetHeight;
var dH=dF.style.pixelHeight;
var sT=document.body.scrollTop;
dF.style.left=eL;
if(eT-dH >= sT && eT+eH+dH > document.body.clientHeight+sT)
dF.style.top=eT-dH;
else
dF.style.top=eT+eH;
if("none"==dF.style.display)
dF.style.display="block";
g_eC=eD;
g_eCV=eD.value;
}
}
function SetDate(d,m,y)
{
if (d==null && m==null && y==null)
{
g_eC.focus();
g_eC.value = ""
return;
}
var ds=GetDateSep();
g_eC.focus();
if("mmddyy"==g_dFmt)
g_eC.value=m+ds+d+ds+y;
else if("ddmmyy"==g_dFmt)
g_eC.value=d+ds+m+ds+y;
else if("yymmdd"==g_dFmt)
g_eC.value =y+ds+m+ds+d;
else
g_eC.value=y+ds+m+ds+d;
g_eCV=g_eC.value;
if(null != g_fnCB && "" != g_fnCB)
eval(g_fnCB);
}
function GetDOW2(d,m,y)
{
var dt=new Date(y,m-1,d);
return(dt.getDay()+(7-GetDowStart()))%7;
}
function LoadMonths(n)
{
var dt=new Date();
var m=dt.getMonth()+1;
var y=dt.getFullYear();
var rg=new Array(n);
for(i=0; i < n; i++)
{
rg[i]=document.createElement("IMG");
rg[i].src="/eta/months/w" + GetDOW2(1,m,y) + "d" + GetMonthCount(m,y) + ".gif";
m++;
if(12 < m)
{
m=1;
y++;
}
}
}
LoadMonths(12);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -