DateDiff
 
获取以指定间隔测量的两个日期的差额

语法

Declare Function DateDiff ( ByRef interval As Const String, ByVal serial1 As Double, ByVal serial2 As Double, ByVal firstdayofweek As Integer = fbUseSystem, ByVal firstdayofyear As Integer = fbUseSystem ) As Integer

用法

#include "vbcompat.bi"
result = DateDiff( interval , date_serial1 , date_serial2 [, firstdayofWeek [, firstweekofyear ] ] )

参数

interval
用于测量差异的时间单位(间隔)
date_serial1
起始日期序列号
date_serial2
结束日期序列号
firstdayofweek
一周的第一天
firstdayofyear
一年的第一天

返回值

返回与两个日期序列号之间找到的interval 个数相对应的整数。

如果date_serial1 >date_serial2 ,结果为负数。

说明


interval 指定如下:

间隔
YYYY年份
q季度(三个月)
m个月
w七天时间
ww日历周
d,y
h小时
n分钟
s


first_dayofweek 使用'ww'间隔时会影响计数。

一周的第一天不变
省略星期日 
0本地设置fbUseSystem
1星期日fbSunday
2星期一fbMonday
3星期二fbTuesday
4星期三fbWednesday
5星期四fbThursday
6星期五fbFriday
7星期六fbSaturday


first_weekofyear 指定哪一年(上一个或下一个)跨越一年结束的那一周,下一个的开始应包括在内。

一年的第一周不变
0本地设置fbUseSystem
11月1日的一周fbFirstJan1
2第一周有四天在一年fbFirstFourDays
3一年的第一个整周fbFirstFullWeek


注意,如果您对两个日期序列进行算术减法,则可以得到差异日期。

编译器将不会识别此函数,除非包含vbcompat.bidatetime.bi.

例子

#include "vbcompat.bi"

Dim s As String, d1 As Double, d2 As Double

Line Input "输入你的生日:", s

If IsDate( s ) Then
  d1 = DateValue( s )
  d2 = Now()

  Print "你是" & DateDiff( "YYYY", d1, d2 ) & "几岁"
  Print "你是" & DateDiff( "d", d1, d2 ) & "几天"
  Print "你是" & DateDiff( "s", d1, d2 ) & "几秒钟"

Else
  Print "失效日期"

End If


与QB差别

  • 在QB中不存在此函数出现在Visual Basic中。

参考