• Excel-VBA 快速上手(十三、日期的常见用法)



    1. 获取系统时间


    常见的三个获取系统时间的方式:

    1. Date 获取当前系统时间的年月日
    2. Time 获取当前系统时间的时分秒
    3. Now 获取当前系统时间的年月日和时分秒
    Public Sub main()
      Debug.Print Date '结果:2022/7/27
      Debug.Print Time '结果:15:00:25
      Debug.Print Now '结果:2022/7/27 15:00:25
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2. 更细力度的提取时间


    1. 从日期中提取年 Year(时间)
    2. 从日期中提取月 Month(时间)
    3. 从日期中提取日 Day(时间)
    4. 从日期中提取时 Hour(时间)
    5. 从日期中提取分 VBA.Minute(时间)
    6. 从日期中提取秒 Second(时间)

    Public Sub main()
      Debug.Print Year(Now) '结果:2022
      Debug.Print Month(Now) '结果:7
      Debug.Print Day(Now) '结果:27
      Debug.Print Hour(Now) '结果:15
      Debug.Print VBA.Minute(Now) '结果:4
      Debug.Print Second(Now) '结果:20
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3. 格式化显示日期


    格式化日期显示的语法为:Format(时间, 格式),常见格式有:

    格式描述
    yyyy-mm-dd年月日
    yyyy年mm月dd日中文年月日
    yyyy年mm月dd日 h:mm:ss中文年月日时分秒
    d-mmm-yy英文月份简写
    d-mmmm-yy英文月份
    aaaa中文星期
    ddd英文星期简写
    dddd英文星期

    示例:

    Public Sub main()
      Debug.Print Format(Now, "yyyy-mm-dd") '结果:2022-07-27
      Debug.Print Format(Now, "yyyy年mm月dd日") '结果:2022年07月27日
      Debug.Print Format(Now, "yyyy年mm月dd日 h:mm:ss") '结果:2022年07月27日 15:13:31
      Debug.Print Format(Now, "d-mmm-yy") '结果:27-Jul-22
      Debug.Print Format(Now, "d-mmmm-yy") '结果:27-July-22
      Debug.Print Format(Now, "aaaa") '结果:星期三
      Debug.Print Format(Now, "ddd") '结果:Wed
      Debug.Print Format(Now, "dddd") '结果:Wednesday
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3. 日期差计算


    日期差计算语法为:DateDiff(时间单位, 时间, 比较的时间)

    Public Sub main()
      Debug.Print DateDiff("d", "2022-07-27", "2022-07-28") '相差几天 结果:1
      Debug.Print DateDiff("m", "2022-07-28", "2022-08-28") '相差几月 结果:1
      Debug.Print DateDiff("yyyy", "2022-07-28", "2023-07-28") '相差几年 结果:1
      Debug.Print DateDiff("q", "2022-07-28", "2022-10-01") '相差几个季度 结果:1
      Debug.Print DateDiff("w", "2022-07-28", "2022-08-04") '相差几个七天 结果:1
      Debug.Print DateDiff("h", "2022-07-28 15:00", "2022-07-28 16:00") '相差几小时 结果:1
      Debug.Print DateDiff("n", "2022-07-28 15:01", "2022-07-28 15:02") '相差几分钟 结果:1
      Debug.Print DateDiff("s", "2022-07-28 15:01:00", "2022-07-28 15:01:01") '相差几秒钟 结果:1
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    4. 日期加减


    日期加减语法为:DateAdd(单位, 加减的时间, 时间),加减的时间为正数就是加,为负数就是减:

    Public Sub main()
      Debug.Print VBA.DateAdd("d", 10, "2022/07/27 16:00:00") '加十天 结果:2022/8/6 16:00:00
      Debug.Print VBA.DateAdd("m", 10, "2022/07/27 16:00:00") '加十个月 结果:2023/5/27 16:00:00
      Debug.Print VBA.DateAdd("yyyy", 10, "2022/07/27 16:00:00")  '加十年 结果:2032/7/27 16:00:00
      Debug.Print VBA.DateAdd("yyyy", -10, "2022/07/27 16:00:00") '减十天 结果:2012/7/27 16:00:00
      Debug.Print VBA.DateAdd("h", 10, "2022/07/27 16:00:00") '加十小时 结果:2022/7/28 2:00:00
      Debug.Print VBA.DateAdd("n", 10, "2022/07/27 16:00:00") '加十分钟 结果:2022/7/27 16:10:00
      Debug.Print VBA.DateAdd("s", 10, "2022/07/27 16:00:00") '加十秒钟 结果:2022/7/27 16:00:10
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    5. 时间序列化

    Public Sub main()
      Debug.Print VBA.DateSerial(2022, 7, 27) '结果:2022/7/27
      Debug.Print VBA.TimeSerial(16, 1, 2) '结果:16:01:02
    End Sub
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    详解js数组操作——filter()方法
    canal 设置offset和binlog,POSITION
    【SpringBoot整合NoSql】-----ElasticSearch的安装与操作篇
    在vite项目中添加Cesium,我们如何让它完美运行?
    MySQL高阶语句和视图
    Docker面试题库
    测试用例设计方法之:入门试招,等价边界初探
    Kubernetes的容器批量调度引擎 Volcano
    js计算数组中每个元素出现的次数
    http内网穿透CYarp[开源]
  • 原文地址:https://blog.csdn.net/Ares5kong/article/details/126015004