繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> ASP基础 >> 再送大家一个礼物!!

再送大家一个礼物!!

2006-06-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:A VBS CLASS calendar calendar.vbs test.ASP Year Calendar Month Calendar 这个程序本来是用来投稿的,但是没有使用,我还是把他公布出来,没有什么特殊的,就是对学习VBS的C...
关键字:礼物 大家 一个

A VBS CLASS calendar

calendar.vbs

<%

'*************************************************************************************************

'VBScript 日历 组件

'

'赋值:

' Mnth 日历月份

' Yr 日历年份

' FontSize 字体大小

' Columns 月份显示列数

' FontFace 字体样式

' FontColour 字体颜色

' FillColour 星期背景颜色

' BorderColour 边框颜色

' BackgroundColour 日历背景颜色

' FullYearLink 全年月份连接

'

'取值:

' MonthCal 月份表格

' YearCal 年份表格

'方法:

' LoadMonthArray 私有方法

'*************************************************************************************************

%>

<%

'定义日历类

class calendar

private M, Y, D, WeekNo, MonthArray, FSize, FFace, FColour, BorderCol, FillCol, BGCol, BigCol, SingleMonth, FYLink, Cols, cStyleSheet

'声明私有变量

property let Mnth(Month)

if Month >= 1 and Month <= 12 then

M = Month

end if

end property

'给月份赋值

property let Yr(Year)

if Year > 1 and Year < 9999 then

Y = Int(Year)

end if

end property

'给年份赋值

property let FontSize(FS)

if FS >= 1 and FS <= 7 then

FSize = FS

end if

end property

'给字体大小赋值

property let Columns(C)

select case C

case 1,2,3,4,6,12

Cols = C

case else

Cols = 4

end select

end property

'给月份行数赋值

property let FontFace(FF)

if FF <> "" then

FFace = FF

end if

end property

'给字体样式赋值

property let FontColour(FC)

if FC <> "" then

FColour = FC

end if

end property

'给字体颜色赋值

property let FillColour(FC)

if FC <> "" then

FillCol = FC

end if

end property

'给星期背景色赋值

property let BorderColour(BC)

if BC <> "" then

BorderCol = BC

end if

end property

'给边框颜色赋值

property let BackgroundColour(BGC)

if BGC <> "" then

BgCol = BGC

end if

end property

'给日历背景色赋值

property let FullYearLink(FYL) FYLink = FYL end property

'给全年连接赋值

property let StyleSheet(SS) cStyleSheet = SS end property

'给样式赋值

'初始化日历类

private Sub Class_Initialize

Mnth = Month(Now)

Yr = Year(Now) '给年份赋值

FFace = "arial" '给字体样式赋值

FSize = 2 '给字体大小赋值

FColour = "black" '给字体颜色赋值

BorderCol = "lightgrey" '给边框颜色赋值

FillCol = "#3399FF" '给星期背景颜色赋值

BgCol = "darkgray" '给日历背景颜色赋值

SingleMonth = true '确定为当前月

FYLink = "" '整个年份连接

Cols = 4 '整个年份中显示月份的列数

StyleSheet = false '是否使用样式

End Sub

'定义LoadMonthArray方法

private Sub LoadMonthArray

Dim Dte, FirstDayNo

Redim MonthArray(6,7)

for D = 1 to 31

Dte = DateSerial(Y,M,D)

if D = 1 then

FirstDayNo = Weekday(Dte)

end if

if M = Month(Dte) and D = Day(Dte) then

WeekNo = Abs( Int( ( ( FirstDayNo + D -1 ) /7 )*-1) )

MonthArray( Weekno, Weekday(Dte) ) = D

end if

next

end sub

'取得月份

property get MonthCal

dim HTML, FontStr, Colour, ColSpan

'定义HTML、字体样式、颜色和表格跨度

if Request.Form("calmonth") <> "" then

M = Int( Request.Form("calmonth") ) '取得传送来的月份

Y = Int( Request.Form("calyear") ) '取得传送来的年份

if M > 12 then

M = 1

Y = Y + 1

end if

if M < 1 then

M = 12

Y = Y -1

end if

end if

LoadMonthArray

FontStr = ""

HTML = ""

'使用HTML制作日历的显示表格

HTML = HTML & "

"

if SingleMonth then

HTML = HTML & "
"

HTML = HTML & "

"

HTML = HTML & "

"

HTML = HTML & "

"

else

HTML = HTML & "

"

end if

HTML = HTML & "

"

for D = 1 to 7

HTML = HTML & "

"

'Right(WeekdayName(d),1)为中文星期格式,可以显示简单格式和完全格式

'英文系统简单格式为:Left(WeekdayName(d),1)

'完全显示格式为:WeekdayName(d)

next

for WeekNo = 1 to 6

HTML = HTML & "

"

for D = 1 to 7

HTML = HTML & "

"

else

HTML = HTML & ">" & MonthArray(WeekNo,D) & ""

end if

if IsNumeric( MonthArray(WeekNo,D) ) then

if Date = DateSerial(Y,M,MonthArray(WeekNo,D)) then

FontStr = Replace( FontStr, BgCol, FColour )

end if

'将当前日期的背景显示为边框颜色

end if

next

HTML = HTML & "

"

next

if SingleMonth then

HTML = HTML & ""

HTML = HTML & ""

'如果是当前月则通过隐藏的表单传送年份和月份

HTML = HTML & ""

end if

HTML = HTML & "

" & FontStr & "< " & FontStr & MonthName(M)

if FYLink <> "" then

HTML = HTML & " " & Y & ""

else

HTML = HTML & " " & Y

end if

HTML = HTML & "

" & FontStr & "> " & FontStr & MonthName(M) & "
" & FontStr & Right(WeekdayName(d),1) & "

if cStyleSheet then

HTML = HTML & "class=day "

end if

if MonthArray(WeekNo,D) = "" then

MonthArray(WeekNo,D) = " "

else

if Date = DateSerial(Y,M,MonthArray(WeekNo,D)) then

HTML = HTML & "bgcolor=" & BorderCol

end if

end if

if not cStyleSheet then

HTML = HTML & ">" & FontStr & MonthArray(WeekNo,D) & "

"

MonthCal = HTML

end property

'取得年份

property get YearCal

Dim HTML, Col, Row, MonthSave, Rows

MonthSave = M

SingleMonth = false

if Request.Form("calyear") <> "" then

Yr = Request.Form("calyear")

end if

Rows = 12/Cols

'定义全年月份显示行数

HTML = HTML & ""

HTML = HTML & "

"

for Row = 1 to Rows

HTML = HTML & "

"

for Col = 1 to Cols

Mnth = Col + ((Row -1) * Cols)

HTML = HTML & "

"

next

HTML = HTML & "

"

next

HTML = HTML & "

"

HTML = HTML & ""

if not CStyleSheet then

HTML = HTML & "< " & Y & " >"

else

HTML = HTML & Y

end if

HTML = HTML & "

" & MonthCal & "
"

'通过隐藏表单来提交年份

Mnth = MonthSave

YearCal = HTML

end property

end class

%>

test.ASP

<%

option explicit

response.expires = 0

response.buffer = true

%>

<%

if Request.QueryString("mode") = "year" then

%>

Year Calendar

<%

else

%>

Month Calendar

<%

end if

%>

<%

dim cal

set cal = new calendar

if Request.QueryString("mode") = "year" then

cal.yr = Request.QueryString("year")

Response.Write( Cal.YearCal )

else

cal.FullYearLink = "test.ASP?mode=year"

Response.Write( Cal.MonthCal )

end if

set cal = nothing

%>

这个程序本来是用来投稿的,但是没有使用,我还是把他公布出来,没有什么特殊的,就是对学习VBS的CLASS有帮助。程序我做了详细的说明,大家可以很容易看懂的。

过断时间还会有好东西公布出来的,请大家期待。最为期待的估计就是VB的仿office XP风格的按钮控件代码了。不过特别的大。呵呵。

责任编辑:admin
相关文章