VBA 43 日期与时间计算

计算时间差

'计算时间差
Sub test2()

Dim t, x, s
t = Timer
Debug.Print t

For x = 1 To 900000
    s = s + x
Next x

Debug.Print Timer - t


End Sub

 

DateDiff函数

' datediff(值显示方式, 较小的日期时间, 较大的日期时间) , 后者-前者 , date difference
Sub test3()

Dim d1, d2
d1 = #11/27/2022#
d2 = #12/2/2022#
d3 = #12/15/2020#
d4 = #9/2/2022#
d5 = #12/2/2022 10:18:00 PM#
d6 = #12/2/2022 10:22:46 PM#

Debug.Print "相隔" & (d2 - d1) & ""
Debug.Print "相隔" & DateDiff("d", d1, d2) & ""
Debug.Print "相隔" & DateDiff("m", d1, d2) & ""
Debug.Print "相隔" & DateDiff("yyyy", d3, d2) & ""    '这里年的格式必须用yyyy
Debug.Print "相隔" & DateDiff("q", d3, d2) & "季度"
Debug.Print "相隔" & DateDiff("w", d4, d2) & ""
Debug.Print "相隔" & DateDiff("h", d1, d2) & "小时"
Debug.Print "相隔" & DateDiff("n", d5, d6) & "分钟"  '注意分钟是用n,不是m, 由于月份使用m,这里分钟如果用m有歧义,使用minute的第3个字母
Debug.Print "相隔" & DateDiff("s", d5, d6) & ""


End Sub

 

DateAdd函数

'日期时间加减
Sub test4()

Dim d1, d2 As Date

d1 = "2022-12-29 00:00:00"

Debug.Print VBA.DateAdd("d", 5, d1)  '加上10天
Debug.Print VBA.DateAdd("m", 2, d1)  '注意特殊的2月,由于2023年2月只有28天,所以返回2023/2/28
Debug.Print VBA.DateAdd("yyyy", 10, d1)   '加上10年
Debug.Print VBA.DateAdd("yyyy", -10, d1)   '减去10年
Debug.Print VBA.DateAdd("h", 10, d1)
Debug.Print VBA.DateAdd("n", 10, d1)
Debug.Print VBA.DateAdd("s", 10, d1)

End Sub

 

posted @ 2022-12-29 22:40  limalove  阅读(504)  评论(0)    收藏  举报