asp前端日历_ASP+JavaScript的完整的日历使用-ASP教程,ASP应用

第一步:保存下列文件为:calendar.asp

function sfont(isize,sface,scolor,bscale)

dim soutputstr

soutputstr = "

if sface <> "" then

soutputstr = soutputstr & " face=" & sface & ""

else

soutputstr = soutputstr & " face=helv"

end if

if isize = "" then

isize = 1

end if

if bscale then

isize = cint(isize * 1)

end if

soutputstr = soutputstr & " size=" & isize

if scolor <> "" then

soutputstr = soutputstr & " color=" & scolor

end if

soutputstr = soutputstr & ">"

sfont = soutputstr

end function

on error resume next

dim datecntrl, dy, mo, yr, nextmonth, startwith, thismo, thisyr, thisdate,the_type

dim prevmonthlastdate, currmonthlastdate, i, j, lastnum, anydate,default_value

datecntrl= request("object")

default_value=request("value")

the_type=request("type")

if the_type<>"datetime" then

the_type="date"

end if

if default_value="" then

yr = year(date)

mo = month(date)

dy = day(date)

else

dim pos1

dim deal_value

deal_value=default_value

pos1=instr(deal_value,"-")

yr = cint(mid(deal_value,1,pos1-1))

deal_value=mid(deal_value,pos1+1)

pos1=instr(deal_value,"-")

mo = cint(mid(deal_value,1,pos1-1))

if trim(the_type)="date" then

dy = cint(mid(deal_value,pos1+1))

else

dim h,m,s

deal_value=mid(deal_value,pos1+1)

pos1=instr(deal_value," ")

dy=cint(mid(deal_value,1,pos1-1))

deal_value=mid(deal_value,pos1+1)

pos1=instr(deal_value,":")

h=cint(mid(deal_value,1,pos1-1))

deal_value=mid(deal_value,pos1+1)

pos1=instr(deal_value,":")

m=cint(mid(deal_value,1,pos1-1))

s=cint(mid(deal_value,pos1+1))

end if

end if

nextmonth = false

%>

a

{ font-size: 13px; color: #000000;text-decoration: none }

a:hover

{color: #ff0000;

}

日历

//检查字符串是否为日期,返回值:false、true

function f_chkdate(datestr)

{

var lthdatestr

if (datestr != "")

lthdatestr= datestr.length ;

else

lthdatestr=0;

var tmpy="";

var tmpm="";

var tmpd="";

//var datestr;

var status;

status=0;

if ( lthdatestr== 0)

return false;

if(lthdatestr>10)

return false;

for (i=0;i < lthdatestr;i++)

{ if (datestr.charat(i)== -)

{

status++;

}

if (status>2)

{

//alert("invalid format of date!");

return false;

}

if ((status==0) && (datestr.charat(i)!=-))

{

tmpy=tmpy+datestr.charat(i)

}

if ((status==1) && (datestr.charat(i)!=-))

{

tmpm=tmpm+datestr.charat(i)

}

if ((status==2) && (datestr.charat(i)!=-))

{

tmpd=tmpd+datestr.charat(i)

}

}

year=new string (tmpy);

month=new string (tmpm);

day=new string (tmpd);

//tempdate= new string (year+month+day);

//alert(tempdate);

if ((tmpy.length!=4) || (tmpm.length>2) || (tmpd.length>2))

{

//alert("invalid format of date!");

return false;

}

if (!((1<=month) && (12>=month) && (31>=day) && (1<=day)) )

{

//alert ("invalid month or day!");

return false;

}

if (!((year % 4)==0) && (month==2) && (day==29))

{

//alert ("this is not a leap year!");

return false;

}

if ((month<=7) && ((month % 2)==0) && (day>=31))

{

//alert ("this month is a small month!");

return false;

}

if ((month>=8) && ((month % 2)==1) && (day>=31))

{

//alert ("this month is a small month!");

return false;

}

if ((month==2) && (day==30))

{

//alert("the febryary never has this day!");

return false;

}

return true;

}

function right(str,number)

{

return str.substr(str.length – number,str.length);

}

function setdate(dy,mo,yr,vbool)

{

if (vbool)

{

if (mo<10) mo="0"+mo;

if (dy<10) dy="0"+dy;

top.opener..value =yr+"-"+mo+"-"+dy+" "+userform.hour.value+":"+userform.minute.value+":"+userform.second.value;

top.opener..value =yr+"-"+mo+"-"+dy;

top.window.close();

}

self.location.href="calendar.asp?type=&object=&value="+yr+"-"+right(("0"+mo),2)+"-"+right(("0"+dy),2)+" "+userform.hour.value+":"+userform.minute.value+":"+userform.second.value;

self.location.href="calendar.asp?type=&object=&value="+yr+"-"+right(("0"+mo),2)+"-"+right(("0"+dy),2);

}

function savedate()

{

top.opener..value =""+" "+userform.hour.value+":"+userform.minute.value+":"+userform.second.value;

top.opener..value ="";

top.window.close();

}

function nextdate(startwith, maxdays)

startwith = startwith + 1

if startwith > maxdays then

startwith = 1

end if

nextdate = startwith

end function

function getlastday(mo,yr)

if mo=2 then

if (yr mod 4)=0 then

getlastday = 29

else

getlastday = 28

end if

elseif ((mo = 0) or (mo = 1) or (mo = 3) or (mo = 5) or (mo = 7) or (mo = 8) or (mo = 10) or (mo = 12)) then

getlastday = 31

else

getlastday = 30

end if

end function

function getfirstdayoffset(mo,yr)

getfirstdayoffset = weekday(mo & "/01/" & yr)-1

end function

function writemonths(selmo)

dim i, selstr

selstr = ""

for i=1 to 12

if selmo = i then

selstr = selstr & "" & monthname(i)

else

selstr = selstr & "" & monthname(i)

end if

next

selstr = selstr & ""

writemonths = selstr

end function

function writeyears(selyear)

dim i, selstr

selstr = ""

for i=1900 to 2100

if selyear = i then

selstr = selstr & "" & i & "年"

else

selstr = selstr & "" & i & "年"

end if

next

selstr = selstr & ""

writeyears = selstr

end function

prevmonthlastdate=getlastday((mo-1),yr)

currmonthlastdate=getlastday(mo,yr)

startwith=(prevmonthlastdate-getfirstdayoffset(mo, yr))

%>

startwith then%>

for i=0 to 23

if (i=h) then

response.write ""+right("0"+cstr(i),2)+"时"+""

else

response.write ""+right("0"+cstr(i),2)+"时"+""

end if

next

%>

for i=0 to 59

if (i=m) then

response.write ""+right("0"+cstr(i),2)+"分"+""

else

response.write ""+right("0"+cstr(i),2)+"分"+""

end if

next

%>

for i=0 to 59

if (i=s) then

response.write ""+right("0"+cstr(i),2)+"秒"+""

else

response.write ""+right("0"+cstr(i),2)+"秒"+""

end if

next

%>

var strdate = +"-"+right(("0"+),2)+"-"+right(("0"+),2);

if (f_chkdate(strdate))

document.all.ok.disabled = false;

else

document.all.ok.disabled = true;

第二步:保存下列文件为:javascriptdate.js

function f_get_date(object_name){

var object_value="";

eval("object_value="+object_name+".value");

if(!f_chkdate(object_value)){

var v_today=new date();

object_value=v_today.getyear()+"-"+(v_today.getmonth()+1)+"-"+(v_today.getdate());

}

open(calendar.asp?type=date&object=+object_name+&value=+object_value,calendar,resizable=yes,toolbar=no,scrollbars=no,directories=no,menubar=no,width=180,height=240);

}

//获取日历时间函数

function f_get_datetime(object_name){

var object_value="";

eval("object_value="+object_name+".value");

open(calendar.asp?type=datetime&object=+object_name+&value=+object_value,calendar,resizable=yes,toolbar=no,scrollbars=no,directories=no,menubar=no,width=210,height=270);

}

//检查字符串是否为日期,返回值:false、true

function f_chkdate(datestr)

{

var lthdatestr

if (datestr != "")

lthdatestr= datestr.length ;

else

lthdatestr=0;

var tmpy="";

var tmpm="";

var tmpd="";

//var datestr;

var status;

status=0;

if ( lthdatestr== 0)

return false;

if(lthdatestr>10)

return false;

for (i=0;i < lthdatestr;i++)

{ if (datestr.charat(i)== -)

{

status++;

}

if (status>2)

{

//alert("invalid format of date!");

return false;

}

if ((status==0) && (datestr.charat(i)!=-))

{

tmpy=tmpy+datestr.charat(i)

}

if ((status==1) && (datestr.charat(i)!=-))

{

tmpm=tmpm+datestr.charat(i)

}

if ((status==2) && (datestr.charat(i)!=-))

{

tmpd=tmpd+datestr.charat(i)

}

}

year=new string (tmpy);

month=new string (tmpm);

day=new string (tmpd);

//tempdate= new string (year+month+day);

//alert(tempdate);

if ((tmpy.length!=4) || (tmpm.length>2) || (tmpd.length>2))

{

//alert("invalid format of date!");

return false;

}

if (!((1<=month) && (12>=month) && (31>=day) && (1<=day)) )

{

//alert ("invalid month or day!");

return false;

}

if (!((year % 4)==0) && (month==2) && (day==29))

{

//alert ("this is not a leap year!");

return false;

}

if ((month<=7) && ((month % 2)==0) && (day>=31))

{

//alert ("this month is a small month!");

return false;

}

if ((month>=8) && ((month % 2)==1) && (day>=31))

{

//alert ("this month is a small month!");

return false;

}

if ((month==2) && (day==30))

{

//alert("the febryary never has this day!");

return false;

}

return true;

}

第三步:在页中加入如下示例:(使用页)

1.获取日期:

f_get_date("document.all.mytime");

2.获取日期和时间

f_get_datetime("document.all.mytime");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值