VBS函数---日期/时间

Date 函数

返回当前系统日期。

Date

说明

下面的示例利用 Date 函数返回当前系统日期:

Dim MyDate MyDate = Date ' MyDate 包含当前系统日期。

Time 函数

返回 Date 子类型 Variant,指示当前系统时间。

Time

说明

下面的示例利用 Time 函数返回当前系统时间:

Dim MyTime MyTime = Time ' 返回当前系统时间。

DateAdd 函数

返回已添加指定时间间隔的日期。

DateAdd(interval, number, date)

参数

interval

必选项。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。

number

必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。

date

必选项。Variant 或要添加 interval 的表示日期的文字。

设置

interval 参数可以有以下值:

设置描述
yyyy
q 季度
m
y 一年的日数
d
w 一周的日数
ww
h 小时
n 分钟
s

说明

可用 DateAdd 函数从日期中添加或减去指定时间间隔。例如可以使用 DateAdd 从当天算起 30 天以后的日期或从现在算起 45 分钟以后的时间。要向 date 添加以“日”为单位的时间间隔,可以使用“一年的日数”(“y”)、“日”(“d”)或“一周的日数”(“w”)。

DateAdd 函数不会返回无效日期。如下示例将 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 年之前,则会产生错误。

如果 number 不是 Long 型值,则在计算前四舍五入为最接近的整数。

DateDiff 函数

返回两个日期之间的时间间隔。

DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])

DateDiff 函数的语法有以下参数:

参数

interval

必选项。String expression 表示用于计算 date1date2 之间的时间间隔。有关数值,请参阅“设置”部分。

date1, date2

必选项。日期表达式。用于计算的两个日期。

Firstdayofweek

可选项。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。

Firstweekofyear

可选项。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。

设置

interval 参数可以有以下值:

设置描述
yyyy
q 季度
n
y 一年的日数
d
w 一周的日数
ww
h 小时
m 分钟
s

 

firstdayofweek 参数可以有以下值:

常数描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

 

firstweekofyear 参数可以有以下值:

常数描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周开始。

 

说明

DateDiff 函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用 DateDiff 计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。

要计算 date1date2 相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当 interval 为“一周的日数”(“w”)时,DateDiff 返回两个日期之间的星期数。如果 date1 是星期一,则 DateDiff 计算到 date2 之前星期一的数目。此结果包含 date2 而不包含 date1。如果 interval 是“周”(“ww”),则 DateDiff 函数返回日历表中两个日期之间的星期数。函数计算 date1date2 之间星期日的数目。如果 date2 是星期日,DateDiff 将计算 date2,但即使 date1 是星期日,也不会计算 date1

如果 date1 晚于 date2,则 DateDiff 函数返回负数。

firstdayofweek 参数会对使用“w”和“ww”间隔符号的计算产生影响。

如果 date1date2 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date1date2 被包括在引号 (" ") 中并且省略年份,则在代码中每次计算 date1date2 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。

interval 为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1 日,虽然实际上只相差一天,DateDiff 返回 1 表示相差一个年份。

下面的示例利用 DateDiff 函数显示今天与给定日期之间间隔天数:

Function DiffADate(theDate) DiffADate = "从当天开始的天数:" & DateDiff("d", Now, theDate)
End Function

DatePart 函数

返回给定日期的指定部分。

DatePart(interval, date[, firstdayofweek[, firstweekofyear]])

Arguments

interval

必选项。字符串表达式表示要返回的时间间隔。有关数值,请参阅“设置”部分。

Date

必选项。要计算的日期表达式。

firstdayof week

可选项。指定星期中的第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。

Firstweekofyear

可选项。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。

设置

interval 参数可以有以下值:

设置描述
yyyy
q 季度
m
y 一年的日数
d
w 一周的日数
ww
h 小时
n 分钟
s

firstdayofweek 参数可以有以下值:

常数描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

firstweekofyear 参数可以有以下值:

常数描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周(不跨年度)开始。

说明

DatePart 函数用于计算日期并返回指定的时间间隔。例如使用 DatePart 计算某一天是星期几或当前的时间。

firstdayofweek 参数会影响使用“w”和“ww”间隔符号的计算。

如果 date 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date 被包含在引号 (" ") 中,并且省略年份,则在代码中每次计算 date 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。.

下面的示例利用 DatePart 函数获得日期并显示该日所在的季节。

 Function GetQuarter(TheDate) GetQuarter = DatePart("q", TheDate) End Function

DateSerial 函数

对于指定的年、月、日,返回 Date 子类型的 Variant

DateSerial(year, month, day)

Arguments

Year

从 100 到 9999 之间的数字或数值表达式。

Month

任意数值表达式。

Day

任意数值表达式。

说明

要指定日期,如 1991 年 12 月 31 日,DateSerial 函数中每个参数的取值范围都应该是可接受的;即日的取值应在 1 和 31 之间,月的取值应在 1 和 12 之间。但是,也可以使用表示某日之前或之后的年、月、日数目的数值表达式为每个参数指定相对日期。

以下样例中使用了数值表达式代替绝对日期。在这里,DateSerial 函数返回 1990 年 8 月 1 日之前十年 (1990 - 10) 零两个月 (8 - 2) 又一天 (1 - 1) 的日期:即 1980 年 5 月 31 日。

Dim MyDate1, MyDate2 MyDate1 = DateSerial(1970, 1, 1)         ' Returns January 1, 1970.
MyDate2 = DateSerial(1990 - 10, 8 - 2, 1 - 1)   ' Returns May 31, 1980.

对于 year 参数,若取值范围是从 0 到 99,则被解释为 1900 到 1999 年。对于此范围之外的 year 参数,则使用四位数字表示年份(例如 1800 年)。

当任何一个参数的取值超出可接受的范围时,则会适当地进位到下一个较大的时间单位。例如,如果指定了 35 天,则这个天数被解释成一个月加上多出来的日数,多出来的日数取决于其年份和月份。但是如果参数值超出 -32,768 到 32,767 的范围,或者由三个参数指定(无论是直接还是通过表达式指定)的日期超出了可以接受的日期范围,就会发生错误。

DateValue 函数

返回 Date 子类型的 Variant。

DateValue(date)

date 参数应是字符串表达式,表示从 100 年 1 月 1 日到 9999 年 12 月 31 日中的一个日期。但是,date 也可以是表示上述范围内的日期、时间或日期时间混合的任意表达式。

说明

如果 date 参数包含时间信息,则 DateValue 不会返回时间信息。但是如果 date 包含无效的时间信息(如 "89:98"),就会出现错误。

如果 date 是某一字符串,其中仅包含由有效的日期分隔符分隔开的数字,则 DateValue 将会根据为系统指定的短日期格式识别月、日和年的顺序。DateValue 还会识别包含月份名称(无论是全名还是缩写)的明确日期。例如,除了能够识别 12/30/1991 和 12/30/91 之外,DateValue 还能识别 December 30, 1991 和 Dec 30, 1991。

如果省略了 date 的年份部分,DateValue 将使用计算机系统日期中的当前年份。

下面的示例利用 DateValue 函数将字符串转化成日期。也可以利用日期文字直接将日期分配给 Variant 变量, 例如, MyDate = #9/11/63#.

Dim MyDate MyDate = DateValue("September 11, 1963") ' 返回日期。

Day 函数

返回 1 到 31 之间的一个整数(包括 1 和31),代表某月中的一天。

date 参数是任意可以代表日期的表达式。如果 date 参数中包含 Null,则返回 Null

下面例子利用 Day 函数得到一个给定日期月的天数:

Dim MyDay MyDay = Day("October 19, 1962") 'MyDay 包含 19

Month 函数

返回 1 到 12 之间的一个整数(包括 1 和 12),代表一年中的某月。

Month(date)

date 参数是任意可以代表日期的表达式。如果 date 参数中包含 Null,则返回 Null

说明

下面的示例利用 Month 函数返回当前月:

Dim MyVar MyVar = Month(Now) ' MyVar 包含当前月对应的数字。

MonthName 函数

返回表明指定月份的字符串。

MonthName(month[, abbreviate])

参数

month

必选项。月份的数值定义。例如,一月是 1,二月是 2,以此类推。

Abbreviate

可选项。Boolean 值,表明月份名称是否简写。如果省略,默认值为 False,即不简写月份名称。

说明

下面的示例利用MonthName 函数为日期表达式返回月份的缩写:

Dim MyVar MyVar = MonthName(10, True) ' MyVar 包含 "Oct"

MonthName 函数

返回表明指定月份的字符串。

MonthName(month[, abbreviate])

参数

month

必选项。月份的数值定义。例如,一月是 1,二月是 2,以此类推。

Abbreviate

可选项。Boolean 值,表明月份名称是否简写。如果省略,默认值为 False,即不简写月份名称。

说明

下面的示例利用MonthName 函数为日期表达式返回月份的缩写:

Dim MyVar MyVar = MonthName(10, True) ' MyVar 包含 "Oct"

Weekday 函数

返回代表一星期中某天的整数。

Weekday(date, [firstdayofweek])

参数

date

可以代表日期的任意表达式。如果 date 参数中包含 Null,则返回 Null

Firstdayofweek

指定星期中第一天的常数。如果省略,默认使用 vbSunday

设置

firstdayofweek 参数有如下设置:

常数描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

返回值

Weekday 函数返回如下值:

常数描述
vbSunday 1 星期日
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

说明

下面例子利用 Weekday 函数得到指定日期为星期几:

Dim MyDate, MyWeekDay MyDate = #October 19, 1962# ' 分派日期。
MyWeekDay = Weekday(MyDate) ' 由于 MyWeekDay 包含 6,MyDate 代表星期五。

WeekDayName 函数

返回一个字符串,表示星期中指定的某一天。

WeekdayName(weekday, abbreviate, firstdayofweek)

参数

weekday

必选项。星期中某天的数值定义。各天的数值定义取决于 firstdayofweek 参数设置。

Abbreviate

可选项。Boolean 值,指明是否缩写表示星期各天的名称。如果省略, 默认值为 False,即不缩写星期各天的名称。

Firstdayofweek

可选项。指明星期第一天的数值。关于数值,请参阅“设置”部分。

设置

firstdayofweek 参数有以下值:

常数描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

说明

下面例子利用 WeekDayName 函数返回指定的某一天:

Dim MyDate MyDate = WeekDayName(6, True) 'MyDate 包含 Fri

Year 函数

返回一个代表某年的整数。

Year(date)

date 参数是任意可以代表日期的参数。如果 date 参数中包含 Null,则返回 Null

说明

下面例子利用 Year 函数得到指定日期的年份:

Dim MyDate, MyYear MyDate = #October 19, 1962# '分派一日期。
MyYear = Year(MyDate) ' MyYear 包含 1962

Hour 函数

返回 0 到 23 之间的一个整数(包括 0 和 23),代表一天中的某一小时。

Hour(time)

time 参数是任意可以代表时间的表达式。如果 time 参数中包含 Null,则返回 Null

下面的示例利用 Hour 函数得到当前时间的小时:

Dim MyTime, MyHour MyTime = Now MyHour = Hour(MyTime) ' MyHour 包含代表当前时间的数值。

Minute

返回 0 到 59 之间的一个整数(包括 0 和59),代表一小时内的某一分钟。

Minute(time)

time 参数是任意可以代表时间的表达式。如果 time 参数包含 Null,则返回 Null

说明

下面的示例利用 Minute 函数返回小时的分钟数:

Dim MyVar MyVar = Minute(Now) 

Second 函数

返回 0 到 59 之间的一个整数(包括 1 和 59),代表一分钟内的某一秒。

Second(time)

time 参数是任意可以代表时间的表达式。如果 time 参数中包含 Null,则返回 Null

说明

下面的示例利用 Second 函数返回当前秒:

Dim MySec MySec = Second(Now) 'MySec 包含代表当前秒的数字。

Now

根据计算机系统设定的日期和时间返回当前的日期和时间值。

Now

说明

下面的示例利用 Now 函数返回当前的日期和时间:

Dim MyVar MyVar = Now ' MyVar 包含当前的日期和时间。

TimeSerial 函数

返回一个 Date 子类型的 Variant,含有指定时、分、秒的时间。

TimeSerial(hour,minute, second)

参数

hour

其值为从 0 (12:00 A.M.) 到 23 (11:00 P.M.) 的数值或数值表达式。

minute

任意数值表达式。

second

任意数值表达式。

说明

要指定一时刻,如 11:59:59,TimeSerial 的参数取值应在可接受的范围内;也就是说,小时应介于 0-23 之间,分和秒应介于 0-59 之间。但是,可以使用数值表达式为每个参数指定相对时间,这一表达式代表某时刻之前或之后的时、分或秒数。

下面的示例使用绝对时间数的表达式。TimeSerial 函数返回中午前 6(12-6)小时前的 15分钟 (-15), 或 5:45:00 A.M.

Dim MyTime1 MyTime1 = TimeSerial(12 - 6, -15, 0) ' 返回 5:45:00 AM.

当任何一个参数的取值超出可接受的范围时,它会正确地进位到下一个较大的时间单位中。例如,如果指定了 75 分钟,则这个时间被解释成一小时十五分钟。但是,如果任何一个参数值超出 -32768 到 32767 的范围,就会导致错误。如果使用三个参数直接指定的时间或通过表达式计算出的时间超出可接受的日期范围,也会导致错误。

TimeValue

返回包含时间的 Date 子类型的 Variant

TimeValue(time)

time 参数通常是代表从 0:00:00 (12:00:00 A.M.) 到 23:59:59 (11:59:59 P.M.) 的字符串表达式(包括 0:00:00 和 23:59:59)。不过,time 也可以是代表该范围内任何时间的表达式。如果 time 参数包含 Null,则返回 Null

说明

可以采用 12 或 24 小时时钟格式输入时间。例如 "2:24PM" 和 "14:24" 都是有效的 time 参数。如果 time 参数包含日期信息, TimeValue 函数并不返回日期信息。然而,如果 time 参数包含无效的日期信息,则会出现错误。

下面的示例利用 TimeValue 函数将字符串转化为时间。也可以用 日期文字 直接赋时间给 Variant 类型的变量(例如, MyTime = #4:35:17 PM#).

Dim MyTime MyTime = TimeValue("4:35:17 PM") ' MyTime 包含 "4:35:17 PM"
 
 

posted on 2012-04-02 23:07  大辉4266  阅读(20181)  评论(0编辑  收藏  举报

导航