หลักการของการแจ้งเตือนวันเกิดของ asp โดยทั่วไปคือการเปรียบเทียบวันเกิดของผู้ใช้กับวันที่ปัจจุบัน หากน้อยกว่าสองสามวัน การแจ้งเตือนจะปรากฏขึ้น ต่อไปนี้เป็นวิธีการต่างๆ ในการใช้แอปเพล็ตเตือนวันเกิดอัตโนมัติ เขียนด้วย ASP ผ่านการดีบักและใช้งานง่าย - วันเกิด asp เตือนโปรแกรมขนาดเล็กโดยอัตโนมัติด้วยการเตรียม ASP ดีบักใช้งานง่าย
วิธีที่หนึ่ง:
โปรแกรมขนาดเล็กที่เดิมเขียนขึ้นเพื่อใช้บนเว็บไซต์ของชั้นเรียนเพื่อเตือนเพื่อนร่วมชั้นถึงวันเกิดในเดือนที่ผ่านมา ถึงแม้จะไม่ค่อยดีนักและเลอะเทอะมาก แต่อย่างน้อยก็เป็นสิ่งที่ผมใช้สมองคิดเองจึงให้คุณค่ากับมันมากกว่า แม้ว่าจะมีโปรแกรม ASP มากมายที่สามารถเรียนรู้จากโปรแกรมอื่นได้ แต่ฉันคิดว่าบ่อยครั้งเราควรโดดเด่นจากความคลาสสิกและสร้างสรรค์สิ่งใหม่ ๆ เพื่อที่จะไม่ยึดติดกับกฎเกณฑ์เก่า ๆ และเป็นเพียงโปรแกรมเมอร์ธรรมดา ๆ ตลอดไป
-
วันดิฟสลัว
dim days 'กำหนดจำนวนวันก่อนและหลังสอบถามนักเรียนที่มีวันเกิดภายใน ตัวอย่างเช่น 60 สอบถามรายชื่อนักเรียนที่มีวันเกิดในเดือนถัดไปหลังจากเดือนก่อนหน้า
SQL=เลือกชื่อ วันเกิดจากคลาส
ตั้งค่า rs=server.CreateObject(ADODB.RecordSet)
rs.เปิด SQL,con,1,1
สำหรับ i=1 ถึง rs.recordcount 'อ่านข้อมูลทั้งหมด
ถ้า rs.eof ให้ออกเพื่อ
daydif=abs(datediff(d,date,rs(วันเกิด)) )mod 365
ถ้า daydif < วัน
ตอบกลับเขียน rs (ชื่อ)%>
response.write <font color=#FF0000>
response.write rs(วันเกิด)&、</font>
สิ้นสุดถ้า
rs.movenext
วนซ้ำ
rs.ปิด
ตั้งค่า rs=nothing
-
วิธีที่สอง:
-
days1=แยก(วันที่(),-)
days2=แยก(DateAdd(d,5,date()),-)
sql=select [id],รหัสสมาชิก,วันเกิดจากลูกค้า
ถ้า days1(1)<>days2(1) แล้ว
sql=sql+ โดยที่ (เดือน(วันเกิด) = '&วัน1(1)&' หรือ เดือน(วันเกิด)='&วัน2(1)&')
อื่น
sql=sql+ โดยที่เดือน (วันเกิด) = '&วัน1(1)&'
สิ้นสุดถ้า
sql=sql+ และวัน(วันเกิด) ระหว่าง '&days1(2)&' และ '&days2(2)&'
'การตอบสนองเขียน (sql)
ตั้งค่า conn=server.CreateObject (ADODB.connection)
conn.open constr
ตั้งค่า rs=Conn.execute(sql)
ถ้าไม่ใช่ rs.eof แล้ว%>
<ภาษาสคริปต์=จาวาสคริปต์>
window.onload = getMsg;
window.onresize = resizeDiv;
window.onerror = ฟังก์ชั่น(){}
// การใช้การแจ้งเตือนทาง 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)
-
จับ(จ){}
-
ฟังก์ชั่น resizeDiv()
-
ฉัน+=1
ถ้า(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)
-
จับ(จ){}
-
ฟังก์ชั่น moveDiv()
-
พยายาม
-
ถ้า(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
-
จับ(จ){}
-
ฟังก์ชั่น closeDiv()
-
document.getElementById('eMeng').style.visibility='hidden';
ถ้า (objTimer) window.clearInterval (objTimer)
-
</สคริปต์>
<DIV id=eMeng style='BORDER-RIGHT: #455690 1px ทึบ; BORDER-TOP: #a6b4cf 1px ทึบ; : 180px; เส้นขอบ-ด้านล่าง: #455690 1px ทึบ ตำแหน่ง: สัมบูรณ์; TOP: 0px; HEIGHT: 116px; พื้นหลัง-สี: #c9d3f3'>
<TABLE style='BORDER-TOP: #ffffff 1px solid; #ffffff 1px solid' cellSpacing=0 cellPadding=0 width='100%' bgColor=#cfdef4 border=0><TBODY>
<TR>
<TD style='FONT-SIZE: 12px; พื้นหลัง-ภาพ: url(msgTopBg.gif); COLOR: #0f2c8c' width=30 height=24></TD>
<TD style='FONT-WEIGHT: ปกติ; FONT-SIZE: 12px; BACKGROUND-IMAGE: url(msgTopBg.gif); COLOR: #1f336b; PADDING-TOP: 4px; PADDING-left: 4px' vAlign=center width= '100%'>เตือนวันเกิด:</TD>
<TD style='ภาพพื้นหลัง: 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 ความสูง=90> <DIV style='BORDER-RIGHT: #b9c9ef 1px solid; -ขวา: 13px; ขอบด้านบน: #728eb8 1px ทึบ ซ้าย: 13px กว้าง 100% สี: #b9c9ef 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)&' />ถ้าฉัน mod 2 =0 แล้ว response.Write(</br>)
rs.movenext
ฉัน=ฉัน+1
วนซ้ำ%></DIV></DIV> </TD>
</TR>
</TBODY>
</ตาราง>
</DIV>
<% สิ้นสุดถ้า
฿.ปิด
ตั้งค่า rs=nothing
con.ปิด()
ตั้งค่า conn=ไม่มีอะไร %>
วิธีที่สาม:
เซิร์ฟเวอร์ sql:
-
ถ้าเดือน(ตอนนี้())=12 และวัน(ตอนนี้())>24 แล้ว
sSql = เลือก FoodID, Strname, TimeID จาก Tfood โดยที่ ( datediff(d,getdate(),dateadd(year,datediff(Year,TimeID,GetDate()),TimeID))<=200 และ datediff(d,getdate(), dateadd(year,datediff(Year,TimeID,GetDate()),TimeID))>=0 ) หรือ ( datediff(d,getdate(),dateadd(ปี,datediff(ปี,TimeID,GetDate())+1,TimeID))<=200 และ datediff(d,getdate(),dateadd(ปี,datediff(ปี,TimeID, GetDate())+1,TimeID))>=0 )
อื่น
sSql = เลือก FoodID, Strname, TimeID จาก Tfood โดยที่ ( datediff(d,getdate(),dateadd(year,datediff(Year,TimeID,GetDate()),TimeID))<=200 และ datediff(d,getdate(), dateadd(ปี,datediff(ปี,TimeID,GetDate()),TimeID))>=0 )
สิ้นสุดถ้า
-
เข้าถึง:
-
ถ้าเดือน(ตอนนี้())=12 และวัน(ตอนนี้())>24 แล้ว
sSql = เลือก *
จากลูกค้า
โดยที่ ( datediff('d',date(),dateadd('yyyy',datediff('yyyy',Birthday,date()),Birthday))<=5 และ datediff('d',date(),dateadd( 'yyyy',datediff('yyyy',Birthday,date()),Birthday))>=0 ) หรือ ( datediff('d',date(),dateadd('yyyy',datediff('yyyy',Birthday,date())+1,Birthday))<=5 และ datediff('d',date(),dateadd( 'yyyy',datediff('yyyy',Birthday,date())+1,Birthday))>=0 );
อื่น
sSql = เลือก *
จากลูกค้า
WHERE (DateDiff('d',date(),DateAdd('yyyy',DateDiff('yyyy',[วันเกิด],วันที่()),[วันเกิด]))<=5 และ DateDiff('d',date(),DateAdd('yyyy',DateDiff('yyyy',[วันเกิด],วันที่()),[วันเกิด]))>=0);
สิ้นสุดถ้า
-