<P><style>td { font-family: 宋体; font-size:9pt</style><body bgcolor=eeeeee><table width=180 cellpadding=0 cellpacing=1 bgcolor=dddddd align=center><% 'Ниже приведен конкретный код, реализованный этим алгоритмом календаря в ASP.</P><P> 'Сначала определите, указаны ли год и месяц, если нет, отобразите If на основе текущего года и месяца Request(ReqDate)= then CurrentDate=Dateelse CurrentDate=Trim(Request(ReqDate))end ifpyear=year(CurrentDate)pmonth=month(CurrentDate)</P><P> 'Следующий код генерирует содержимое заголовка таблицы для отображения календаря % > <tr align=LEFT bgcolor=#dddddd> <td width=14% height=19 align=center> <input type=button value=<< onclick=JavaScript:location.href='?ReqDate=<%=DateAdd(m,-1,CurrentDate) %>'></td> <td colspan=5 align=center> <%=pyear% >Год<%=pmonth%>Месяц</td> <td width=14% align=center> <тип ввода=значение кнопки=>> onclick=JavaScript:location.href='?ReqDate=<%=DateAdd(m,1,CurrentDate)%>'></td> </tr> <tr align=center bgcolor=#CCCCCC> <td width=14 % height=19> день</td> <td width=14%> один</td> <td width=14%> два</td> <td width=14%> три</td> <td width=14%> четыре</td> <td width=14%> пять</td> <td width=14%> шесть</td> </tr> <tr align=center bgcolor=ffffff высота=19> <% «Поскольку в ASP нет функции для получения количества дней в указанном месяце, нам нужно использовать другие алгоритмы для его получения. Алгоритм на самом деле очень прост: он заключается в вычислении общего количества дней между 1-м числом. месяц, который будет отображаться, и 1-е число следующего месяца fromDate = FormatDateTime(month(CurrentDate) & /1/ &year(CurrentDate))toDate = FormatDateTime(DateAdd(m,1,fromDate))'Получите день недели, когда первый день месяца, который будет отображаться, — nunmonthstart=weekday(fromDate)-1'Получите общее количество дней между первым днем, который будет отображается и 1-й день следующего месяца (сколько дней в месяце)nunmonthend=DateDiff(d,fromDate,toDate)' Определите, сколько строк таблиц необходимо использовать для отображения календаря (каждая строка отображает 7 дней ) если nunmonthstart+nunmonthend<36 then maxi=36else maxi=43end if'Цикл для создания таблицы и отображения i=1do while i<maxi iv=i-nunmonthstart if i>nunmonthstart и i<=nunmonthend+nunmonthstart then 'Если то, что отображается это сегодня. Затем отобразите его на красном фоне, если iv=Day(now) и месяц(сейчас)=pмесяц и год(сейчас)=pyear, тогда ответ.write( <td align=center bgcolor=ffaaaa><a href='#' target=_blank> & iv & </a></td>) else response.write( <td align=center><a href='#' target= _blank> & iv & </a></td>) end if else response.write( <td> </td>) end if</P><P> 'Если оно делится на 7 (отображается 7 в строке), выведите новую строку, если я мод 7=0, затем ответ.write( </tr><tr align=center bgcolor=ffffff height=19>) end if i=i +1loop%></table></body>