加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

VBA中DateDiff函数用法

(2021-05-19 07:33:15)
VBA中DateDiff函数用法
返回  Variant  ( Long)  的值,表示两个指定日期间的时间间隔数目。
语法
DateDiff( interval, date1, date2 [ , firstdayofweek [ , firstweekofyear ]] )
DateDiff 函数语法中有下列命名参数:
部分 描述
interval 必要。字符串表达式,表示用来计算 date1 和 date2  的时间差的时间间隔
Date1,date2 必要。 Variant  ( Date) 。计算中要用到的两个日期。
Firstdayofweek 可选。指定一个星期的第一天的常数。 如果未予指定, 则以星期日为第一天
firstweekofyear 可选。指定一年的第一周的常数。 如果未予指定, 则以包含1  月 1  日的星期为第一周
设置 
interval  参数的设定值如下:

设置 描述 设置 描述
yyyy 年 w 一周的日数
q 季 ww 周
m 月 h 时
y 一年的日数 n 分钟
d 日 s 秒
firstdayofweek  参数的设定值如下:

常数 值 描述
vbUseSystem 0 使用 NLS API  设置
vbSunday 1 星期日(缺省值)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
常数 值 描述
vbUseSystem 0 用 NLS API  设置。
vbFirstJan1 1 从包含  月 1  日的星期开始(缺省值)
vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始
vbFirstFullWeek 3 从第一个无跨年度的星期开始。
说明 
DateDiff 函数可用来决定两个日期之间所指定的时间间隔数目。例如,可以使用 DateDiff 来计算两个日期之间相隔几日, 或计算从今天起到年底还有多少个星期。为了计算 date1 与 date2  相差的日数,可以使用“一年的日数” (y)  或“日” (d) 。当 interval 是“一周的日数” (w)  时,DateDiff 返回两日期间的周数。如果 date1 是星期一, DateDiff 计算到 date2 为止的星期一的个数。这个数包含 date2 但不包含 date1 。不过,如果 interval 是“周” (ww),则DateDiff 函数返回两日期间的“日历周”数。由计算 date1 与 date2  之间星期的个数而得。如果 date2  刚好是星期日,则 date2 也会被加进 DateDiff 的计数结果中;但不论 date1  是否为星期日,都不将它算进去。如果 date1  比 date2  来得晚,则 DateDiff 函数的返回值为负数。firstdayofweek 参数会影响使用时间间隔符号 “W”  或 “WW”  计算的结果。如果 date1  或 date2  是日期文字,则指定的年份成为该日期的固定部分。 但是,如果 date1  或 date2  用双引号  (" ")  括起来,且年份略而不提,则在每次计 
算表达式 date1  或 date2  时,当前年份都会插入到代码之中。 这样就可以书写适用于不同年份的程序代码。在计算  12  月 31  日和来年的  月 1  日的年份差时,DateDiff 返回  表示相差一个年份,虽然实际上只相差一天而已。 
DateDiff  函数示例 
本示例使用 DateDiff 函数来显示某个日期与今日相差几天。 
Dim TheDate As Date    声明变量。 
Dim Msg 
TheDate = InputBox("Enter a date") 
Msg = "Days from today: " & DateDiff("d", Now, TheDate) 
MsgBox Msg 

DateDiff()函数返回两个指定的时间间隔之间的差值。

语法

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

Vb

参数

  • Interval - 一个必需的参数。 它可以采用以下值。
    • d - 一年中的一天
    • m - 一年中的月份
    • y - 一年中的年份
    • yyyy - 年份
    • w - 工作日
    • ww - 星期
    • q - 季度
    • h - 小时
    • m - 分钟
    • s - 秒钟
  • Date1Date2 - 必需的日期参数。
  • Firstdayofweek - 一个可选参数。指定一周的第一天。它可以采取以下值。
    • 0 = vbUseSystemDayOfWeek - 使用国家语言支持(NLS)API设置。
    • 1 = vbSunday - 星期天
    • 2 = vbMonday - 星期一
    • 3 = vbTuesday - 星期二
    • 4 = vbWednesday - 星期三
    • 5 = vbThursday - 星期四
    • 6 = vbFriday - 星期五
    • 7 = vbSaturday - 星期六
  • Firstdayofyear - 一个可选参数。指定一年中的第一天。 它可以采取以下值。
    • 0 = vbUseSystem - 使用国家语言支持(NLS)API设置
    • 1 = vbFirstJan1 - 从1月1日发生的那一周开始(默认)
    • 2 = vbFirstFourDays - 从新年至少有四天的一周开始
    • 3 = vbFirstFullWeek - 从新年的第一个整周开始

示例

添加一个模块,并添加以下示例代码 -

Private Sub Constant_demo_Click()
   Dim fromDate as Variant
   fromDate = "01-Jan-09 00:00:00"

   Dim toDate as Variant
   toDate = "01-Jan-10 23:59:00"

   msgbox("Line 1 : " &DateDiff("yyyy",fromDate,toDate))
   msgbox("Line 2 : " &DateDiff("q",fromDate,toDate))
   msgbox("Line 3 : " &DateDiff("m",fromDate,toDate))
   msgbox("Line 4 : " &DateDiff("y",fromDate,toDate))
   msgbox("Line 5 : " &DateDiff("d",fromDate,toDate))
   msgbox("Line 6 : " &DateDiff("w",fromDate,toDate))
   msgbox("Line 7 : " &DateDiff("ww",fromDate,toDate))
   msgbox("Line 8 : " &DateDiff("h",fromDate,toDate))
   msgbox("Line 9 : " &DateDiff("n",fromDate,toDate))
   msgbox("Line 10 : "&DateDiff("s",fromDate,toDate))
End Sub

Vb

执行上面示例代码,得到以下结果 -

Line 1 : 1
Line 2 : 4
Line 3 : 12
Line 4 : 365
Line 5 : 365
Line 6 : 52
Line 7 : 52
Line 8 : 8783
Line 9 : 527039
Line 10 : 31622340
//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/vba/vba_datediff_function.html


DateAdd,DateDiff日期函数的用法

来源:网络  点击数:28428  评论数:3 评论 收藏 复制

时 间:2008-04-04 13:16:13
作 者:friendship   ID:92  城市:北京
摘 要:DateAdd,DateDiff日期函数的用法
正 文:

1.DateAdd ( I , N , D ) 
将一个日期加上一段期间后的日期。 I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下: 
yyyy Year 年 
q Quarter 季 
m Month 月 
d Day 日 
w Weekday 星期 
h Hour 时 
n Minute 分 
s Second 秒 
N :数值表达式,设定一个日期所加上的一段期间,可为正值或负值,正值表示加(结果为 >date 以后的日期),负值表示减(结果为 >date 以前的日期)。 
D :待加减的日期。 
例子: DateAdd ( "m" , 1 , "31-Jan-98") 
结果: 28-Feb-98 
说明:将日期 31-Jan-98 加上一个月,结果为 28-Feb-98 而非 31-Fe-98 。 
例子: DateAdd ( "d" , 20 , "30-Jan-99") 
结果: 1999/2/9 
说明:将一个日期 30-Jan-99 加上 20 天后的日期。 

2.Day( 日期的字符串或表达式 ) 
传回日期的「日」部份。 
例子: Day(" 12/1/1999 ") 
结果: 1 

3.DateDiff (I , D1 , D2[,FW[,FY]]) 
计算两个日期之间的期间。 
I :设定两个日期之间的期间计算之单位。譬如 >I="m" 表示计算的单位为月。 >I 的设定值如: 
yyyy > Year 年 
q Quarter 季 
m Month 月 
d Day 日 
w Weekday 星期 
h Hour 时 
n Minute 分 
s Second 秒 
D1 ,D2:计算期间的两个日期表达式,若 >date1 较早,则两个日期之间的期间结果为正值;若 >date2 较早, 则结果为负值。 
FW :设定每周第一天为星期几, 若未设定表示为星期天。 >FW 的设定值如下: 
0 使用 >API 的设定值。 
1 星期天 
2 星期一 
3 星期二 
4 星期三 
5 星期四 
6 星期五 
7 星期六 
FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下: 
0 使用 >API 的设定值。 
1 一月一日那一周为一年的第一周 
2 至少包括四天的第一周为一年的第一周 
3 包括七天的第一周为一年的第一周 
例子: DateDiff ("d","25-Mar-99 ","30-Jun-99 ") 
结果: 97 
说明:显示两个日期之间的期间为 97 天


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有