asp实现的可以提醒生日的几种方法附代码
更新时间:2008年06月20日 08:44:52 作者:
asp提醒生日的原理一般就是把用户的出生日期和当前日期对比,如果少于几天则提醒显示,下面是几种方法的实现
asp生日自动提醒小程式 用ASP编写,调试通过,使用方便-asp birthday automatically remind small programs with the preparation of ASP, debug, easy to use
方法一:
最初写的一个用于班级网站的最近一个月同学生日的提醒小程序。虽然不怎么样,而且很乱,但是最起码是自己动脑筋去想的,所以我比较看重。ASP程序虽然有好多可以借鉴人家的。但是我想更多时候,我们应该在经典上有所突出,有所创新那不至于默守陈规而无永远只能做一个平凡的程序员。
dim daydif
dim days '定义查询前后多少天内生日的同学,如60则查询前一个月后下一个月生日的同学名单。
SQL="Select name,brithday from class "
Set rs=server.CreateObject("ADODB.RecordSet")
rs.Open SQL,con,1,1
for i=1 to rs.recordcount '读出所有的数据
if rs.eof then exit for
daydif=abs(datediff("d",date,rs("birthday")) )mod 365
if daydif
response.write rs("name")%>
response.write ""
response.write rs("birthday")&"、"
end if
rs.movenext
loop
rs.Close
Set rs=nothing
%>
方法二:
days1=split(date(),"-")
days2=split(DateAdd("d",5,date()),"-")
sql="select [id],Memberid,birthday from customers "
if days1(1)<>days2(1) then
sql=sql+" where (month(birthday) = '"&days1(1)&"' or month(birthday)='"&days2(1)&"')"
else
sql=sql+" where month(birthday) = '"&days1(1)&"'"
end if
sql=sql+" and day(birthday) between '"&days1(2)&"' and '"&days2(2)&"'"
'Response.Write(sql)
set conn=server.CreateObject("ADODB.connection")
conn.open connstr
set rs=Conn.execute(sql)
if not rs.eof then%>
window.onload = getMsg;
window.onresize = resizeDiv;
window.onerror = function(){}
//短信提示使用(asilas添加)
var divTop,divLeft,divWidth,divHeight,docHeight,docWidth,objTimer,i = 0;
function getMsg()
{
try{
divTop = parseInt(document.getElementById("eMeng").style.top,10)
divLeft = parseInt(document.getElementById("eMeng").style.left,10)
divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10)
divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10)
docWidth = document.body.clientWidth;
docHeight = document.body.clientHeight;
document.getElementById("eMeng").style.top = parseInt(document.body.scrollTop,10) + docHeight + 10;// divHeight
document.getElementById("eMeng").style.left = parseInt(document.body.scrollLeft,10) + docWidth - divWidth
document.getElementById("eMeng").style.visibility="visible"
objTimer = window.setInterval("moveDiv()",10)
}
catch(e){}
}
function resizeDiv()
{
i+=1
if(i>500) closeDiv()
try{
divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10)
divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10)
docWidth = document.body.clientWidth;
docHeight = document.body.clientHeight;
document.getElementById("eMeng").style.top = docHeight - divHeight + parseInt(document.body.scrollTop,10)
document.getElementById("eMeng").style.left = docWidth - divWidth + parseInt(document.body.scrollLeft,10)
}
catch(e){}
}
function moveDiv()
{
try
{
if(parseInt(document.getElementById("eMeng").style.top,10) <= (docHeight - divHeight + parseInt(document.body.scrollTop,10)))
{
window.clearInterval(objTimer)
objTimer = window.setInterval("resizeDiv()",1)
}
divTop = parseInt(document.getElementById("eMeng").style.top,10)
document.getElementById("eMeng").style.top = divTop - 1
}
catch(e){}
}
function closeDiv()
{
document.getElementById('eMeng').style.visibility='hidden';
if(objTimer) window.clearInterval(objTimer)
}
生日提示: | × | |
近期将要过生日的会员有:
do while not rs.eof Response.Write(""&rs(1)&"("&month(rs(2))&"-"&day(rs(2))&") ") if i mod 2 =0 then response.Write("") rs.movenext i=i+1 loop%> |
rs.close
set rs=nothing
conn.close()
set conn=nothing %>
方法三:
sql server:
If month(Now())=12 and day(now())>24 Then
sSql = "select FoodID, Strname, TimeID from Tfood where ( datediff(d,getdate(),dateadd(year,datediff(Year,TimeID,GetDate()),TimeID))<=200 and datediff(d,getdate(),dateadd(year,datediff(Year,TimeID,GetDate()),TimeID))>=0 ) Or ( datediff(d,getdate(),dateadd(year,datediff(Year,TimeID,GetDate())+1,TimeID))<=200 and datediff(d,getdate(),dateadd(year,datediff(Year,TimeID,GetDate())+1,TimeID))>=0 )"
Else
sSql = "select FoodID, Strname, TimeID from Tfood where ( datediff(d,getdate(),dateadd(year,datediff(Year,TimeID,GetDate()),TimeID))<=200 and datediff(d,getdate(),dateadd(year,datediff(Year,TimeID,GetDate()),TimeID))>=0 )"
End If
%>
Access:
If month(Now())=12 and day(now())>24 Then
sSql = "SELECT *
FROM customers
WHERE ( datediff('d',date(),dateadd('yyyy',datediff('yyyy',Birthday,date()),Birthday))<=5 and datediff('d',date(),dateadd('yyyy',datediff('yyyy',Birthday,date()),Birthday))>=0 ) Or ( datediff('d',date(),dateadd('yyyy',datediff('yyyy',Birthday,date())+1,Birthday))<=5 and datediff('d',date(),dateadd('yyyy',datediff('yyyy',Birthday,date())+1,Birthday))>=0 );"
Else
sSql = "SELECT *
FROM customers
WHERE (DateDiff('d',date(),DateAdd('yyyy',DateDiff('yyyy',[Birthday],date()),[Birthday]))<=5 And DateDiff('d',date(),DateAdd('yyyy',DateDiff('yyyy',[Birthday],date()),[Birthday]))>=0);"
End If
%>
相关文章
asp com接口的调用代码。 需要的朋友可以参考下。2009-10-10
学习asp的朋友需要了解下2008-11-11
asp时间加减运算 和转换问题2009-03-03
asp实现表格3列5行...2006-07-07
asp中COM组件中如何连接数据库的代码...2007-03-03
如何增加Referer功能--反向链接插件...2007-02-02
有时候我们需要 延迟 下面的函数的执行,但不建议使用啊,最好能换个思路。2009-06-06
ASP+XML留言板介绍...2006-11-11
一个能对访问者进行编号、记录访问次数、IP、时间的统计制作实例,需要的朋友可以参考下2015-09-09
Eval、Execute、ExecuteGlobal 这三个语句(函数)都是执行字符串表达式,不过它们之间又有所不同。2011-07-07
最新评论