asp 一年的周数

asp 一年的周数,第1张

<%

y=2016  '年份

z=25  '第几周

d=dateadd("ww",z-1,dateserial(y,1,1))  '第几周后的日期

w=weekday(d)  '星期几。1为星期日,2为星期一,类推

t=d-w+6  '最后一个工作日即星期五的日期

response.write y & "年第" & z & "周的最后一个工作日是" & t

%>

5分....

闲着没事,就做做吧..

Response.Write CheckWeek("2013W43") '显示2013年第43周是几号到几号...

Function CheckWeek(Week)

'每年第一周,从1月1日起计.

Dim FirstDay,EndDay,FirstYW,WeekNum,EndWeekDay,EndYW,DateStr_Arr(6)

FirstDay=Left(Week,4)&"/1/1" '当年第一天

EndDay=Left(Week,4)&"/12/31" '当年最后一天

FirstYW=Weekday(FirstDay,2) '当年第一天处在周几

WeekNum=Cint(Right(Week,Len(Week)-5)) '取出周数

If WeekNum=1 Then '如果是计算第一周,则只算1月1号到本周日

    For I=0 To 7-FirstYW '顺推到周日

        EndWeekDay=Dateadd("D",I,FirstDay)

        DateStr_Arr(I)=EndWeekDay

    Next

    CheckWeek="[ "&DateStr_Arr(0)&" ]到[ "&DateStr_Arr(7-FirstYW)&" ]"

ElseIf WeekNum=52 or WeekNum=51 or WeekNum=53 Then '针对有51\52\53周不同情况的年份

    DayNum=(WeekNum)*7-FirstYW

    EndYW=Dateadd("D",DayNum,FirstDay) '本周日是几号.倒推到周

    If Datediff("yyyy",EndYW,EndDay)=0 Then '不跨年,继续倒推

        For I=0 To 6

            X=0-I

            EndWeekDay=Dateadd("D",X,EndYW)

            DateStr_Arr(I)=EndWeekDay

        Next

        CheckWeek="[ "&DateStr_Arr(6)&" ]到[ "&DateStr_Arr(0)&" ]" &EndYW

    Else

        EndYW=Weekday(EndDay,2)

        For I=0 To EndYW-1 '倒推到周一

            X=0-I

            EndWeekDay=Dateadd("D",X,EndDay)

            DateStr_Arr(I)=EndWeekDay

        Next

        CheckWeek="[ "&DateStr_Arr(EndYW-1)&" ]到[ "&DateStr_Arr(0)&" ]"

    End If

Else

    DayNum=(WeekNum)*7-FirstYW

    EndYW=Dateadd("D",DayNum,FirstDay) '本周日是几号.倒推到周一

    For I=0 To 6

        X=0-I

        EndWeekDay=Dateadd("D",X,EndYW)

        DateStr_Arr(I)=EndWeekDay

    Next

    CheckWeek="[ "&DateStr_Arr(6)&" ]到[ "&DateStr_Arr(0)&" ]"

End IF

End Function

本文提供vbscript时间函数的概要介绍,可应对一般应用,具体特殊需求可进一步搜索。

date()

获取日期,格式:2004-2-28

time()

获取时间,格式:22:24:59

now()

获取日期和时间

格式:

2005-5-2

22:37:30

d=date()

获取年份:year(d)

获取月份:month(d)

获取日子:day(d)

获取星期几:weekday(d)

t=time()

获取小时:hour(t)

获取分钟:minute(t)

获取秒数:second(t)

日期相加函数:DateAdd(interval,

number,

date)

可用该函数从日期中添加或减去指定时间间隔。

参数说明:

interval-运算的基准间隔

number-加上多少,可为负数

date-基准日期

下面是interval的可选值,注意加上引号:

设置

描述

yyyy

q

季度

m

y

一年的日数

d

w

一周的日数

ww

h

小时

n

分钟

s

举例:

1、计算明天:

tomorrow=DateAdd("d",1,date())

2、2012年12月1日的前一天:

preday=DateAdd("d",-1,"2012-12-1")

更详细用法请搜索。

日期间隔函数-DateDiff(interval,

date1,

date2[,

firstdayofweek][,

firstweekofyear]])

计算两个日期之间相差的间隔。

例如,可以使用

DateDiff

来计算两个日期之间相隔几日,或计算从今天起到年底还有多少个星期。如果date1比date2

晚,则返回负数。

参数说明:

interval-同DateAdd()函数

Date1,date2

-进行运算的两个日期

可选参数:

firstdayofweek-

指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。

当计算两个日期相差几周时(时间间隔符号

“w”

“ww”),该参数会影响结果。具体请搜索。

firstweekofyear-指定一年的第一周怎么确定,如果未予指定,则以包含

1

1

日的星期为第一周。具体请搜索。

其他函数:

DateSerial(year,

month,

day)

-将数值换算为日期变量,返回值类型同date()函数。例如,如果day=35,则自动计算到下个月。再例如,DateSerial(1990

-

10,

8

-

2,

1

-

1)

则计算1990

年8月1日的十年零两个月又一天

之前的日期,也就是1980年5月31日。

DatePart(interval,

date[,firstdayofweek[,

firstweekofyear]])

-返回指定时间部分的数值。例如,可以使用DatePart

计算某个日期是星期几或目前为几点钟。参数同上面。

DateValue(date)-将各种日期格式串转化为日期变量,返回值类型同date()函数。例如,除了

12/30/1991

12/30/91

之外,DateValue

也识别

December

30,

1991

Dec

30,

1991。

TimeValue(time)-将各种时间格式串转化为时间变量。原理同DateValue。

TimeSerial(hour,

minute,

second)

-将数值转化为时间变量,返回值类型和time()函数相同。原理同DateSerial。

Timer()-午夜开始到现在经过的秒数。

Now

Now()

取得系统当前的日期和时间

Dim

MyVar

MyVar

=

Now

MyVar

包含当前的日期和时间。

Date

Date()

取得系统当前的日期

Dim

MyDate

MyDate

=

Date

MyDate

包含当前系统日期。

Time

Time()

取得系统当前的时间

Dim

MyTime

MyTime

=

Time

返回当前系统时间。

Year

Year(Date)

取得给定日期的年份

Dim

MyDate,

MyYear

MyDate

=

#October

19,

1962#

函数

语法

说明

示例

Now

Now()

取得系统当前的日期和时间

Dim

MyVar

MyVar

=

Now

MyVar

包含当前的日期和时间。

Date

Date()

取得系统当前的日期

Dim

MyDate

MyDate

=

Date

MyDate

包含当前系统日期。

Time

Time()

取得系统当前的时间

Dim

MyTime

MyTime

=

Time

返回当前系统时间。

Year

Year(Date)

取得给定日期的年份

Dim

MyDate,

MyYear

MyDate

=

#October

19,

1962#

分派一日期。

MyYear

=

Year(MyDate)

MyYear

包含

1962。

Month

Month(Date)

取得给定日期的月份

Dim

MyVar

MyVar

=

Month(Now)

MyVar包含当前月对应的数字。

Day

Day(Date)

取得给定日期是几号

Dim

MyDay

MyDay

=

Day("October

19,

1962")

MyDay包含

19。

Hour

Hour(time)

取得给定时间是第几小时

Dim

MyTime,

MyHour

MyTime

=

Now

MyHour

=

Hour(MyTime)

MyHour

包含代表当前时间的数值。

Minute

Minute(time)

取得给定时间是第几分钟

Dim

MyVar

MyVar

=

Minute(Now)

Second

Second(time)

取得给守时间是第几秒

Dim

MySec

MySec

=

Second(Now)

MySec

包含代表当前秒的数字。

WeekDay

WeekDay(Date)

取得给定日期是星期几的整数,1表示星期日,2表示星期一,依此类推

Dim

MyDate,

MyWeekDay

MyDate

=

#October

19,

1962#

分派日期

MyWeekDay

=

Weekday(MyDate)

MyWeekDay

包含

6,MyDate

代表星期五

DateDiff

DateDiff("Var",Var1,Var2)

Var:日期或时间间隔因子,有如下参数:

yyyy

m月

d

ww星期

h小时

s秒

Var1:第一个日期或时间

Var2:第二个日期或时间,比Var1晚

计算两个日期或时间的间隔

DateDiff("d",Date(),#1/1/2005#)

返回离2005元旦还有多少

DateDiff("h",Date(),#1/1/2005#)

返回离2005元旦还有多少小时

DateDiff("d",#1/1/2003#,#1/1/2005#)

返回两个日期之间的天数

DateAdd

DateDiff("Var",Var1,Var2)

Var:日期或时间间隔因子:

Var1:日期或时间间隔倍数

Var2:日期或时间的基准

对两个日期或时间作加法

如下示例将

95

1

31

日加上一个月:

NewDate

=

DateAdd("m",

1,

"31-Jan-95")

在这个示例中,DateAdd

返回

95

2

28

日,而不是

95

2

31

日。如果

date

96

1

31

日,则返回

96

2

29

日,这是因为

1996

是闰年。

如果计算的日期是在公元

100

年之前,则会产生错误。

FormatDateTime

FormatDateTime(Date,vbShortDate)

转化为短日期格式

FromatDateTime(Date(),vbLongDate)

"以长日期格式显示

FormatDateTime(Date,vbLongDate)

转化为长日期格式

FormatDateTime(Date,vbShortTime)

转化为短时间格式

FormatDateTime(Date,vbLongTime)

转化为长时间格


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/808535.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-29
下一篇2023-08-29

发表评论

登录后才能评论

评论列表(0条)

    保存