VB 计算时间差的函数DateDiff

DateDiff 函数

返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。

语法

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

部分 描述
interval 必要。字符串表达式,表示用来计算date1date2的时间差的时间间隔
Date1□date2 必要;Variant (Date)。计算中要用到的两个日期。
Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。

设置

interval参数的设定值如下:

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

为了计算 date1date2相差的日数,可以使用“一年的日数”(y) 或“日”(d)。当 interval 是“一周的日数”(w) 时,DateDiff 返回两日期间的周数。如果date1 是星期一,DateDiff 计算到date2 为止的星期一的个数。这个数包含date2 但不包含date1。不过,如果interval 是“周”(ww),则 DateDiff 函数返回两日期间的“日历周”数。由计算date1date2 之间星期日的个数而得。如果date2刚好是星期日,则 date2 也会被加进 DateDiff 的计数结果中;但不论date1是否为星期日,都不将它算进去。

如果 date1 date2 来得晚,则 DateDiff 函数的返回值为负数。

如果 date1 date2日期文字,则指定的年份成为该日期的固定部分。但是,如果date1date2 用双引号 (" ") 括起来,且年份略而不提,则在每次计算表达式date1date2 时,当前年份都会插入到代码之中。这样就可以书写适用于不同年份的程序代码。

下边我的代码为例:

Dim StartDate As Date
Dim StartTime As Date
Dim EndDate As Date
Dim EndTime As Date

Dim CostDate As Long
Dim CostTime As Long

StartDate = Format(Trim(mrc.Fields(2)),"mm-dd HH:mm")
StartTime = Format(Trim(mrc.Fields(3)),"mm-dd HH:mm")
EndDate = Format(Trim(mrc.Fields(4)),"mm-dd HH:mm")
EndTime = Format(Trim(mrc.Fields(5)),"mm-dd HH:mm")

CostDate = DateDiff("n",Trim(StartDate),Trim(EndDate))
CostTime = DateDiff("n",Trim(StartTime),Trim(EndTime))

txtCosttime = Format(Str(CostTime / 60),"0.00")

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...