quarta-feira, 24 de janeiro de 2001

Calendário ASP - Estruturado.

O código abaixo implementa um calendário que pode ser customizado para chamar um link, frame ou JavaScript.


Escrito em programação estruturada ele não é dos mais fáceis de se entender, atualmente estou trabalhando em uma versão orientada a objetos do mesmo.


Peguem também o código do auxarrays.asp que complementa o código do calendário.


Aguardo sugestões e críticas (elogios também porque não).


[]s


PEST


 


<%@ Language="VBScript" %>
<!-- #include file="auxArrays.asp" -->
<%
fDay = 1


function nWeeks(Mes, Ano)
 Dim nSemanas
 startdate = DateSerial(Ano, Mes, fDay)
 if WeekDay(startdate) = 1 then
  nsemanas = 0
 else
  nsemanas = 1
 end if
 ndiasmes = monthDays(Mes-1)
 
 for i = 1 to nDiasmes
  if WeekDay(startdate) = 1 then
   nsemanas = nsemanas + 1
  end if
  startdate = DateAdd("d", 1, startdate)
 next
 nWeeks = nsemanas
end function


sub setBissexto
 Data = Request("Data")
 if Trim(data) = "" then
  Data = Date()
 else
  Data = CDate(Data)
 end if
 Ano = Year(Data) 
 if (ano mod 4 = 0) or (ano mod 100 = 0) and (ano mod 400 = 0) then
  monthDays(1)=29
 else
  monthDays(1)=28 'Teste ano bissexto
 end if
end sub
setBissexto


sub WriteCalendar
 Data = Request("Data")
 if Trim(data) = "" then
  Data = Date()
 else
  Data = CDate(Data)
 end if
 Ano = Year(Data)
 Mes = Month(Data)
 startday = WeekDay(DateSerial(ano, mes, fday))
 startdate = DateSerial(ano, mes, fday)


 '#Início Tabela
 Response.Write "<table border cellpading=0 cellspacing=0><tr>"&VBCrLf
 
 '#Descer mês
 Response.Write "<th width=25>"&VBCrLf
 Response.Write "<center><input type='button' value=' << ' onclick='javascript:document.location.href=""calend.asp?data="&DateAdd("m", -1, startdate)&"""'>"&VBCrLf
 Response.Write "</center></th>"&VBCrLf
 
 '#Escreve mês ano
 Response.Write "<th colspan=5 class=cal align=center nowrap width=120>"&WriteMonth(startdate)&" - "&Year(startdate)&"</th>"&VBCrLf
 
 '#Subir mês
 Response.Write "<th width=25>"&VBCrLf
 Response.Write "<center><input type='button' value=' >> ' onclick='javascript:document.location.href=""calend.asp?data="&DateAdd("m", 1, startdate)&"""'>"&VBCrLf
 Response.Write "</center></th></tr>"&VBCrLf


 '#Escreve cabeçalho dias da semana
 Response.Write "<tr>"
 for j = 0 to 6
  if j=0 then
   Response.Write "<td class=cal align=center><div class=dom>"&weekdays(j)&"</div></td>"&VBCrLf
  else
   Response.Write "<td class=cal align=center>"&weekdays(j)&"</td>"&VBCrLf
  end if
 next
 Response.Write "</tr>"


 '#Escreve tábua de dias
 for i = 0 to (nWeeks(Month(startdate), Year(startdate)) -1)
  Response.Write "<tr>"&VBCrLf
  for j = 0 to 6
   if (startday-1) > j and i = 0 then
    if j=0 and i=0 then
     Response.Write "<td class=cal><div class=dom>&nbsp;</div></td>"&VBCrLf
    else
     Response.Write "<td class=cal>&nbsp;</td>"&VBCrLf
    end if
   else
    if Month(startdate) > Mes or Year(startdate) > Ano then
     Response.Write "<td class=cal>&nbsp;</td>"&VBCrLf
    else
     if weekDay(startdate) = 1 then
      Response.Write "<td class=cal align=center><div class=dom>"&Day(startdate)&"</div></td>"&VBCrLf
     else
      if startdate = Date() then
       Response.Write "<td align=center><div class=hoje><a href='javascript:updDiary("""&startDate&""")' style='Color: White;'>"&Day(startdate)&"</a></div></td>"&VBCrLf
      else
       Response.Write "<td class=cal id="&Day(startdate)&" align=center><a href='javascript:updDiary("""&startDate&"""); fixClickedDay("""&Day(startdate)&""")'>"&Day(startdate)&"</a></td>"&VBCrLf
      end if
     end if
    end if
    startdate = DateAdd("d", startdate, 1)
   end if
  next
  Response.Write "</tr>"&VBCrLf
 next


 '#Fim tabela
 Response.Write "</table>"&VBCrLf
end sub


%>
<html>
<head>
<script language="JavaScript">
<!--
function updDiary(data){
 alert(data)
}


function fixClickedDay(dia){
 return
}
-->
</script>



<style>
th.cal
{
 Font-Family: Verdana;
 Font-Size: 8 pt;
 Background : Blue;
 Color : White;
}


td.cal
{
 Font-Family: Verdana;
 Font-Size: 8 pt;
}


.hoje
{
 Font-Family: Verdana;
 Font-Size: 8 pt;
 Background : Teal;
 Color: White;
}


a
{
 Font-Family: Verdana;
 Font-Size: 8 pt;
 Text-Decoration: None;
 Color: "Black";
}


a:hover
{
 Font-Family: Verdana;
 Font-Size: 8 pt;
 Text-Decoration: None;
 Color: "Red";
}


.dom
{
 Font-Family: Verdana;
 Font-Size: 8 pt;
 Text-Decoration: None;
 Color: White;
 Background : Blue;
 
}
p
{
 Font-Family: Verdana;
 Font-Size: 10 pt;
}


td
{
 Font-Family: Verdana;
 Font-Size: 10 pt;
}
</style>


<title>&lt;--    Santanense.Net    --&gt;</title></head>
<body bgcolor="#FFFFFF">
<p><img src="../imgs/santanense.net.gif" width="544" height="89"></p>
<p>
  <% writeCalendar %>
</p>
</body>
</html>



Esta matéria foi postada originalmente no ASP4Developers por João Márcio Gonçalves Prado, que na época era "Webmaster Santanense Tecidos.
Diversos programas e sistemas ASP feitos para todo o tipo de empresas em MG.
". Hoje, vai saber...

0 comentários: