VBA实战(10) - 日期处理汇总

日期处理汇总

定义一个日期

v_date = Date  ' 今天,格式为:yyyy-MM-dd
v_time = Now   ' 此时,格式为:yyyy-MM-dd HH:mm:ss
v_date2 = #"2021-06-01" '指定时间
v_date3 = CDate("2021-06-01")

日期格式化

' 2022-01-28
Format(Date, "yyyy-MM-dd")
' 获取当天的年周数,格式为长格式,例如第一周显示为01
v_week_num = WorksheetFunction.WeekNum(Date, vbMonday)
Format(v_week_num, "00")

日期处理

对日期进行处理,得到想要的目标日期

' 今天
today = Date
' 昨天
yesterday = today - 1
' 本周一 注:在Excel中,周日是一周的第一天
monday = today - Weekday(today) + 2
' 本月第一天
monthFirstDay = lastMonday - Day(lastMonday) + 1
' 本月最后一天
targetDate = DateSerial(Year(targetDate), Month(targetDate) + 1, 0)
' 今天是一年的第几周,以周一作为本周的第一天
weekNum = WorksheetFunction.weekNum(today, vbMonday)

日期比较

日期是可以直接比较和相减的,相减的间隔为时间的间隔。

' 今天
today = Date
' 昨天
yesterday = today - 1
' 日期之间也可以比较和加减
today > yesterday  ' True
today - yesterday  ' 1 ,相隔1一天

计算时间间隔

DateDiff 函数可以用于计算时间的间隔。

Sub tt1()
    Dim d1, d2 As Date
    d1 = #11/21/2021#
    d2 = #12/1/2022#
    MsgBox("相隔" & (d2 - d1) & "天")
    MsgBox("相隔" & DateDiff("d", d1, d2) & "天")
    MsgBox("相隔" & DateDiff("m", d1, d2) & "月")
    MsgBox("相隔" & DateDiff("yyyy", d1, d2) & "年")
    MsgBox("相隔" & DateDiff("q", d1, d2) & "季")
    MsgBox("相隔" & DateDiff("w", d1, d2) & "周")
    MsgBox("相隔" & DateDiff("h", d1, d2) & "小时")
    MsgBox("相隔" & DateDiff("n", d1, d2) & "分种")
    MsgBox("相隔" & DateDiff("s", d1, d2) & "秒")
End Sub

计算耗时

startTime = Time

' 业务数据处理
MsgBox ("运行此流程共耗时:" & DateDiff("s", startTime, Time) & "秒")

' 后台打印使用的时间
Debug.Print DateDiff("s", startTime, Time) & "秒"
  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jie_ming514

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值