代码如下:
<%
'转发时请保留此声明信息,这段声明不并会影响你的速度!
'************************** 【日期扩展类】Ver 0.1.1********************************
'开发人: Sman、Net Fetch
'开发日期: 2005-11-11
'版本号: Ver 0.1.1
'官方网站:http://www.gxlsystem.com NetFetchStudio@163.com
'每日在线QQ:19341293 32050450
'版权声明:版权没有,盗版不究,源码公开,欢迎盗版,欢迎你到官方网站来寻求支持。
'如有任何改进之处,麻烦转发或者反馈一份到 huihui3030@126.com、NetFetchStudio@163.com,Thanks!
'详细使用说明或范例请见下载附件或到官方站点或Email联系下载!
'************************************************************************************
Class DateFunEx
Private d_
Private firstweekofyear_
Private firstdayofweek_
Private Sub class_initialize()
d_ = date() '默认当前日期
firstdayofweek_ = 2 'vbMonday
firstweekofyear_ = 1 '由 1 月 1 日所在的星期开始。
End Sub
'属性 setDate 日期
Public Property Let setDate(value)
On Error Resume Next
If IsNumeric(value) Then
value = Cint(value)
If len(value)< 3 Then value = "20" & right("0"&value,2)
value = value & "-1"
End If
d_ = cDate(value)
End Property
'属性 firstweekofyear 每年的第一周(详细设置请参照VBS手册)
Public Property Let firstweekofyear(value)
firstweekofyear_ = cInt(value)
End Property
'属性 FirstDayofWeek 每周的第一天(详细设置请参照VBS手册)
Public Property Let firstdayofweek(value)
firstdayofweek_ = cInt(value)
End Property
'------------------------------
' 功能说明:算第几周的星期几是几号
' 参数说明:y 年,w周,week 星期 (星期一1 星期天7)
'------------------------------
Public Function GetWeekDate(y, w, DayofWeek)
Dim NewYearDay
NewYearDay = CDate(y & "-1-1") '元旦
GetWeekDate = ((NewYearDay - Weekday(NewYearDay, firstdayofweek_)) + (w - 1) * 7 + DayofWeek)
End Function
'------------------------------
' 功能说明:获得某年某月的天数
'------------------------------
Public Function GetMonthDayCount()
GetMonthDayCount = DateDiff("d", d_, DateAdd("m", 1, d_))
End Function
'------------------------------
' 功能说明:得到某年某月的第一天
'------------------------------
Public Function GetMonthFirstDay()
GetMonthFirstDay = CDate( Year(d_) & "-" & Month(d_) & "-1")
End Function
'------------------------------
' 功能说明:得到某年的某月的最后一天
'------------------------------
Public Function GetMonthLastDay()
GetMonthLastDay = CDate( Year(d_) & "-"&Month(d_) & "-" & DateDiff("d", d_, DateAdd("m", 1, d_)))
End Function
'------------------------------
' 功能说明:某日所在的周的第一天的日期
'------------------------------
Public Function WeekFirstDay()
WeekFirstDay = GetWeekDate(Year(d_), DatePart("ww", d_,firstdayofweek_,firstweekofyear_), 1)
End Function
'------------------------------
' 功能说明:某日所在的周的第最后一天的日期
'------------------------------
Public Function WeekLastDay()
WeekLastDay = GetWeekDate(Year(d_), DatePart("ww", d_,firstdayofweek_,firstweekofyear_), 7)
End Function
End Class
%>
测试页面:
代码如下:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<% Option Explicit %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Test_clsDateFunEx</title>
</head>
<body>
<!--#include file="clsDateFunEx.asp" -->
<%
Dim myDateFun,strDate
strDate = "2005-4-1"
Set myDateFun = new DateFunEx
myDateFun.setDate = strDate
Response.write "2006年第2周的星期一是几号:" & _
myDateFun.GetWeekDate(2006,2,1) &"<br>"
Response.Write "2005年4月的天数:"&_
myDateFun.GetMonthDayCount & "<br>"
Response.Write "2005年4月的第一天:"&_
myDateFun.GetMonthFirstDay & "<br>"
Response.Write "2005年4月的最后一天:"&_
myDateFun.GetMonthLastDay & "<br>"
Response.Write "2005年4月1日所在的周的第一天的日期:"&_
myDateFun.WeekFirstDay & "<br>"
Response.Write "2005年4月1日所在的周的第最后一天的日期:" & _
myDateFun.WeekLastDay & "<br>"
Set myDateFun = Nothing
%>
<br><br><br>
</body>
</html>
下载此文件