Принцип напоминания о дне рождения asp обычно заключается в сравнении даты рождения пользователя с текущей датой. Если прошло меньше нескольких дней, напоминание будет отображено. Ниже приведены несколько способов реализации апплета автоматического напоминания о дне рождения asp. написан на ASP, прошел отладку и прост в использовании - день рождения asp автоматически напоминает небольшие программы с подготовкой ASP, отладка, проста в использовании
Способ первый:
Небольшая программа, изначально написанная для использования на веб-сайте класса, чтобы напоминать одноклассникам об их днях рождения в прошлом месяце. Хотя это не очень хорошо и очень грязно, по крайней мере, я думал об этом своим собственным мозгом, поэтому я ценю это больше. Хотя существует множество программ ASP, которым можно научиться у других. Но я считаю, что чаще всего нам следует выделяться среди классиков и вводить новшества, чтобы не придерживаться старых правил и навсегда остаться обычным программистом.
<%
тусклый день
dimdays 'Определите количество дней до и после запроса учащихся, чьи дни рождения находятся в пределах. Например, 60 запрашивает список учащихся, чьи дни рождения приходятся на следующий месяц после предыдущего месяца.
SQL = Выберите имя и день рождения из класса
Установите rs=server.CreateObject(ADODB.RecordSet)
rs.Open SQL,con,1,1
for i=1 to rs.recordcount 'Читать все данные
если rs.eof, то выходим для
daydif=abs(datediff(d,date,rs(день рождения)) )mod 365
если деньдиф < дней
response.write rs(name)%>
response.write <цвет шрифта=#FF0000>
response.write rs(день рождения)&、</font>
конец, если
rs.movenext
петля
rs.Close
Установить rs=ничего
%>
Способ второй:
<%
дни1=сплит(дата(),-)
days2=split(DateAdd(d,5,date()),-)
sql=select [id],Memberid,день рождения от клиентов
если дни1(1)<>дни2(1), то
sql=sql+ где (месяц(день рождения) = '&days1(1)&' или месяц(день рождения)='&days2(1)&')
еще
sql=sql+ где месяц(день рождения) = '&days1(1)&'
конец, если
sql=sql+ и день(день рождения) между '&days1(2)&' и '&days2(2)&'
'Ответ.Запись(sql)
set conn=server.CreateObject(ADODB.connection)
conn.open connstr
установить rs=Conn.execute(sql)
если не rs.eof, то%>
<язык сценария=JavaScript>
window.onload = getMsg;
window.onresize = resizeDiv;
window.onerror = функция(){}
//Использование SMS-напоминаний (добавлено asilas)
вар divTop, divLeft, divWidth, divHeight, docHeight, docWidth, objTimer, я = 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=видимый
objTimer = window.setInterval(moveDiv(),10)
}
поймать(е){}
}
функция изменения размераDiv()
{
я+=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()
{
пытаться
{
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
}
поймать(е){}
}
функция closeDiv()
{
document.getElementById('eMeng').style.visibility='hidden';
if(objTimer) window.clearInterval(objTimer)
}
</скрипт>
<DIV id=eMeng style='BORDER-RIGHT: #455690 1px Solid; BORDER-TOP: #a6b4cf 1px Solid; Z-INDEX:99999; ВЛЕВО: 0px; ВИДИМОСТЬ: скрыто; BORDER-LEFT: #a6b4cf WIDTH; : 180 пикселей; #455690 1 пиксель, сплошной; ПОЛОЖЕНИЕ: ВЕРХУ: 0 пикселей; ВЫСОТА: 116 пикселей; ЦВЕТ ФОНА: #c9d3f3'>.
<TABLE style='BORDER-TOP: #ffffff 1px Solid; BORDER-LEFT: #ffffff 1px Solid' cellSpacing=0 cellPadding=0 width='100%' bgColor=#cfdef4 border=0><TBODY>
<ТР>
<TD style='FONT-SIZE: 12px; BACKGROUND-IMAGE: 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='BACKGROUND-IMAGE: url(msgTopBg.gif); PADDING-TOP: 2px;PADDING-right:2px' vAlign=center align=right width=19><span /></TR>
<ТР>
<TD style='PADDING-RIGHT: 1px; BACKGROUND-IMAGE: url(1msgBottomBg.jpg); PADDING-BOTTOM: 1px' colSpan=3 height=90> <DIV style='BORDER-RIGHT: #b9c9ef 1px Solid; -ПРАВО: 13 пикселей ВЕРХНЯЯ ГРАНИЦА: #728eb8; 1 пиксель СЛЕВА: 13 пикселей; РАЗМЕР ШРИФТА: 13 пикселей; ГРАНИЦА СЛЕВА: #728eb8 1 пиксель; ЦВЕТ: #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)&' />если я мод 2 =0, то response.Write(</br>)
rs.movenext
я=я+1
цикл%></DIV></DIV> </TD>
</TR>
</TBODY>
</ТАБЛИЦА>
</DIV>
<% конец, если
RS.закрыть
установить rs=ничего
конн.закрыть()
установить conn=ничего %>
Способ третий:
SQL-сервер:
<%
Если месяц(Now())=12 и день(now())>24 Тогда
sSql = выберите FoodID, Strname, TimeID из Tfood, где ( Dateiff(d,getdate(),dateadd(year,datediff(Year,TimeID,GetDate()),TimeID))<=200 и Dateiff(d,getdate(), dateadd(year,datediff(Year,TimeID,GetDate()),TimeID))>=0 ) Или ( Dateiff(d,getdate(),dateadd(year,datediff(Year,TimeID,GetDate())+1,TimeID))<=200 и dateiff(d,getdate(),dateadd(year,datediff(Year,TimeID, GetDate())+1,TimeID))>=0 )
Еще
sSql = выберите FoodID, Strname, TimeID из Tfood, где ( dateiff(d,getdate(),dateadd(year,datediff(Year,TimeID,GetDate()),TimeID))<=200 и Dateiff(d,getdate(), dateadd(год,datediff(Год,TimeID,GetDate()),TimeID))>=0 )
Конец, если
%>
Доступ:
<%
Если месяц(Now())=12 и день(now())>24 Тогда
sSql = ВЫБРАТЬ *
ОТ клиентов
ГДЕ ( dateiff('d',date(),dateadd('yyyy',datediff('yyyy',Birthday,date()),Birthday))<= 5 и Dateiff('d',date(),dateadd( 'yyyy',datediff('yyyy',Birthday,date()),Birthday))>=0 ) Или ( датированный('д',дата(),dateadd('гггг',datediff('гггг,День рождения,дата())+1,День рождения))<=5 и датированный('д',дата(),dateadd( 'гггг',datediff('гггг',День рождения,дата())+1,День рождения))>=0 );
Еще
sSql = ВЫБРАТЬ *
ОТ клиентов
ГДЕ (DateDiff('d',date(),DateAdd('yyyy',DateDiff('yyyy',[День рождения],дата()),[День рождения]))<=5 И DateDiff('d',date(),DateAdd('гггг',DateDiff('гггг',[День рождения],дата()),[День рождения]))>=0);
Конец, если
%>