ASP の誕生日リマインダーの原理は、一般にユーザーの誕生日と現在の日付を比較することです。ASP の誕生日リマインダー アプレットを実装するには、次のような方法があります。 ASP で書かれ、デバッグに合格し、使いやすい - ASP の誕生日は、ASP の準備により小さなプログラムを自動的に思い出させます、デバッグ、使いやすい
方法 1:
元々はクラスの Web サイトでクラスメートに先月の誕生日を思い出させるために作成された小さなプログラムです。あまり上手ではないし、めちゃくちゃでもありますが、少なくとも自分の頭を使って考えたものなので、もっと大切にしています。他の人から学ぶことができる ASP プログラムはたくさんありますが。しかし、私はより頻繁に、古いルールに固執して永遠に普通のプログラマーに留まらないように、古典的なものから際立って革新する必要があると考えています。
<%
薄暗い昼の差
dim days ' 誕生日が次の月にある学生のリストをクエリする前後の日数を定義します。
SQL=クラスから名前、誕生日を選択
rs=server.CreateObject(ADODB.RecordSet) を設定します。
rs.SQLを開く,con,1,1
for i=1 to rs.recordcount 'すべてのデータを読み取ります
if rs.eof then exit
daydif=abs(datediff(d,date,rs(誕生日)) )mod 365
日差 < 日の場合
応答.write rs(名前)%>
応答.書き込み <font color=#FF0000>
応答.write rs(誕生日)&、</font>
終了する場合
rs.movenext
ループ
rs.閉じる
rs=何も設定しない
%>
方法 2:
<%
days1=split(日付(),-)
days2=split(DateAdd(d,5,date()),-)
sql=顧客から[id]、メンバーid、誕生日を選択
if days1(1)<>days2(1) then
sql=sql+ where (月(誕生日) = '&days1(1)&' または 月(誕生日)='&days2(1)&')
それ以外
sql=sql+ where month(birthday) = '&days1(1)&'
終了する場合
sql=sql+ および '&days1(2)&' と '&days2(2)&' の間の day(birthday)
'応答.書き込み(SQL)
set conn=server.CreateObject(ADODB.connection)
conn.open connstr
set rs=Conn.execute(sql)
rs.eof でない場合は%>
<スクリプト言語=JavaScript>
window.onload = getMsg;
window.onresize =sizeDiv;
window.onerror = function(){}
//SMS リマインダーの使用法 (asilas によって追加)
var divTop、divLeft、divWidth、divHeight、docHeight、docWidth、objTimer、i = 0;
関数getMsg()
{
試す{
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)
}
キャッチ(e){}
}
関数resizeDiv()
{
i+=1
if(i>500) closeDiv()
試す{
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)
}
キャッチ(e){}
}
関数moveDiv()
{
試す
{
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
}
キャッチ(e){}
}
関数 closeDiv()
{
document.getElementById('eMeng').style.visibility='hidden';
if(objTimer) window.clearInterval(objTimer)
}
</script>
<DIV id=eMeng style='BORDER-RIGHT: #455690 1px ソリッド; BORDER-TOP: 1px ソリッド; Z-INDEX: 0px; BORDER-LEFT: 1px ソリッド; : 180ピクセル; #455690 1px ソリッド; トップ: 0px; 高さ: 116px;
<TABLE style='BORDER-TOP: #ffffff 1px ソリッド; BORDER-LEFT: #ffffff 1px ソリッド' cellSpacing=0 cellPadding=0 width='100%' bgColor=#cfdef4 border=0><TBODY>
<TR>
<TD style='FONT-SIZE: 12px; BACKGROUND-IMAGE: url(msgTopBg.gif); COLOR: #0f2c8c' width=30 height=24></TD>
<TD style='FONT-WEIGHT:normal; BACKGROUND-IMAGE:url(msgTopBg.gif); PADDING-TOP:4px;PADDING-left:4px' vAlign=center width= '100%'>誕生日のリマインダー:</TD>
<TD style='BACKGROUND-IMAGE: url(msgTopBg.gif); PADDING-TOP: 2px;PADDING-right:2px' vAlign=center align=right width=19><span /></TR>
<TR>
<TD style='PADDING-RIGHT: 1px; BACKGROUND-IMAGE: url(1msgBottomBg.jpg); PADDING-BOTTOM: 1px'colSpan=3 height=90> <DIV style='BORDER-RIGHT: #b9c9ef 1px PADDING; -右: 13px; ボーダー上部: #728eb8 1px ソリッド; フォントサイズ: 12px; ボーダー左: 1px 色: #1f336b; Solid; HEIGHT: 100%'>近い将来誕生日を迎えるメンバーは次のとおりです:<BR><BR> <DIV align=center style='word-break:break-all'>
<%i=1
rs.eof ではないときに実行します
Response.Write(<a href='/System/AdmMember/Edit.asp?id=&rs(0)&' />if i mod 2 =0 then response.Write(</br>)
rs.movenext
i=i+1
ループ%></DIV></DIV> </TD>
</TR>
</TBODY>
</テーブル>
</DIV>
<% 終了の場合
rs.close
rs=何も設定しない
conn.close()
conn=何も設定しない %>
方法 3:
SQLサーバー:
<%
month(Now())=12 かつ day(now())>24 の場合
sSql = Tfood から FoodID、Strname、TimeID を選択します。ここで ( datediff(d,getdate(),dateadd(year,datediff( Year,TimeID,GetDate()),TimeID))<=200 および datediff(d,getdate(), dateadd(year,datediff(年,TimeID,GetDate()),TimeID))>=0 ) または ( datediff(d,getdate(),dateadd(year,datediff( Year,TimeID,GetDate())+1,TimeID))<=200 および datediff(d,getdate(),dateadd(year,datediff( Year,TimeID, GetDate())+1,TimeID))>=0 )
それ以外
sSql = Tfood から FoodID、Strname、TimeID を選択します。ここで ( datediff(d,getdate(),dateadd(year,datediff( Year,TimeID,GetDate()),TimeID))<=200 および datediff(d,getdate(), dateadd(年,datediff(年,TimeID,GetDate()),TimeID))>=0 )
終了の場合
%>
アクセス:
<%
month(Now())=12 かつ day(now())>24 の場合
sSQL = SELECT *
お客様から
WHERE ( datediff('d',date(),dateadd('yyyy',datediff('yyyy',Birthday,date()),Birthday))<=5 および datediff('d',date(),dateadd( 'yyyy',datediff('yyyy',誕生日,date()),誕生日))>=0 ) または ( datediff('d',date(),dateadd('yyyy',datediff('yyyy',Birthday,date())+1,Birthday))<=5 および datediff('d',date(),dateadd( 'yyyy',datediff('yyyy',誕生日,date())+1,誕生日))>=0 );
それ以外
sSQL = SELECT *
お客様から
WHERE (DateDiff('d',date(),DateAdd('yyyy',DateDiff('yyyy',[誕生日],date()),[誕生日]))<=5 And DateDiff('d',date(),DateAdd('yyyy',DateDiff('yyyy',[誕生日],date()),[誕生日]))>=0);
終了の場合
%>