百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

VB/VBA/VBS内置函数系列之DateDiff

yuyutoo 2025-01-11 18:27 1 浏览 0 评论

前言

在《VB/VBA/VBS内置函数有哪些?》中,从分类和具体名称上,给大家介绍了VB/VBA/VBS内置的函数集。并着重强调了一些高阶应用中会经常使用的函数,比如后缀带B的,如ChrB,LeftB,MidB,RightB,AscB,LenB,InstrB等,转换函数中的Fix和Val数学函数中的Rnd,Randomize和Round,字符串函数中的Filter,Instr,InstrRev,Join,Split日期函数中的DateDiff其他Environ,Format,Strconv,CreateObject,GetObject,Shell等。

有网友希望能专题讲下这些函数,恰好这些函数又算是笔者后续VB系列技术文章基础中的基础,再加之网上相关介绍比较少,或者不怎么详细,所以笔者就挑选一些出来,做成一个内置函数系列给大家。

不过,这个系列,还是从VB/VBA/VBS规范使用的角度进行介绍,等后续高阶应用阶段,再从指针的角度(也即图形化的C和安全的C)进行回顾,让VB/VBA/VBS的爱好者们,真正体会VB的强大,欢迎持续关注。

一、认识日期格式

日期类型,在VB/VBA/VBS中为Date类型,而Date类型在WTYPES.H中被定义为"typedef double DATE;",因此Date类型实际上为Double类型。笔者在《知VBA的浮点数结构,更懂算力》一文中有详细介绍,可点击查阅。

Double类型,占8字节,15位有效小数。由1Bit符号位、11Bits指数位和52Bits有效数位三部分组成,在内存里可视为1个整数,结构与Single类似。按照IEEE(美国电气和电子工程师学会)的标准,与十进制转换公式为:l= (-1)^s * (1 + f) * 2^(e - 1023)

在实际使用过程中,VB/VBA/VBS为了提高容错率,对小白们尽可能友好,几乎所有的内置函数的参数和返回值,都使用了Variant类型。在今天要介绍的DateDiff函数中,日期参数也是如此,数据存放在第9-16字节中,而数据类型存放在第1-2字节里。

注:VBS中仅有Variant类型,因此很多人认为VBS没有数据类型,其实是不正确的。感兴趣的朋友,可以点击参阅《VB的任性,从Variant开始》《VB的天地,横看成岭侧成峰》《VB/VBA中Variant不仅是容器,充当传参的Any,更可以当函数用哦》等文章,对Variant及其应用,有较为详细的分析。

二、DateDiff函数语法

1、函数功能

该函数为时间减法函数,计算两个日期之间的间隔时间。

2、函数的定义(VB形式)

DateDiff(Interval As String,Date1 As Variant,Date2 As Variant,Optional ByVal FirstDayOfWeek As VbDayOfWeek=vbSunday,Optional ByVal FirstWeekOfYear As VbFirstWeekOfYear=vbFirstJan1) As Variant

3、函数参数说明

Interval为时间间隔单位,也即DateDiff返回值的时间单位,具体为下图所示:

Date1为时间减法运算中的被减数,不仅支持Date类型和Double类型表示的时间,也支持字符串表示的时间(如"1899-12-30 0:00:00")。

Date2为时间减法运算中的减数,其余同Date1。

FirstDayOfWeek为1周中第1天从星期几开始,默认从星期天开始

FirstWeekOfYear为1年中第1月从星期几开始,默认从1月开始

三、DateDiff函数应用

既然DateDiff是用来进行时间减法运算的,那计算两个时间之差,就是该函数主要应用场景,例如:

1、计算两个日期之间有几年,几个季度,几个月,几周等,在财会行业中通常用于计算应收账期计提坏账。

2、计算两个时间之间有多少个小时、分钟或秒,在按时计费等相关领域,可大显身手。

3、计算指定月度、季度或年度天数,比如2034年有多少天,当前月天数等。

4、计算UNIX时间戳,将8字节Date/Double类型转换4字节Long类型。

事实上,该函数可以应用的场景非常多,在后续文章中会结合具体应用,再做介绍,欢迎关注!

欢迎关注BtOfficer(收藏、点赞、关注+转发),更多精彩仍在继续哦(专栏文章将更系统,更全面,但需要阁下支持哦),有严肃的技术,也有轻松的唠嗑,期待你的加入!

相关推荐

字节跳动官方出品的免费图标库,超好用还能自定义修改

现在很多企业公司或品牌都会将自己开发的设计素材开放出来,像是图标集、字体或是网页框架等等,使这些项目可以被更多人使用,或是在开源的情况下创造出更多可能性,当然一方面也能提高被看到的机会。之前介绍过IB...

微信底部不起眼的图标,还藏着设计师的这些小心思,网友:贴心

每天至少要打开十几次的微信,你注意过底部的小图标吗?可能有些读者会说了,不就是几个小图标吗?你发现没:选中的图标选项框是实心图标,但是没有选中的就是空心图标。为什么会这样设计呢?所以,我们今天就来聊聊...

ppt常用小图标去哪里找?3个矢量素材网站推荐!

ppt是一个注重可视化表达的演示载体,除了高清图片,ppt中另一类常用的素材是各种小图标,也叫矢量图标,巧妙运用小图标能提升整体美观度和表现力,那么ppt常用小图标去哪里找呢?...

手机右上角的状态栏,如果出现了这些小图标,记得一定要关闭

文|技术探索者编辑|技术探索者...

Win10设置应用更新:升级“关于”页面,主页图标可跟随主题色

IT之家12月24日消息,科技媒体WindowsLatest昨日(12月23日)发布博文,报道称Windows10系统正整合两项“新”功能/特性,包括色彩更丰富的设置H...

全网最炫酷、最华丽、最好看的动画图标库

很多小伙伴一直苦恼找不到合适自己使用的动画图标,今天TJ君要给大家分享一个...

电脑任务栏的网络小图标,就能告诉你不能上网的真正原因是什么?

我们在使用电脑时,经常遇到电脑突然就不能上网了,特别是着急上传文件或资料的时候,偏偏在关键时候掉链子。其实,电脑真的很智通,只是我们不在意电脑告诉我们的重要信息,所以就只能干着急了。1、正常有线网络连...

建议收藏的7个高质量图标网站,一网打尽图标素材

大家好,这里是@秋叶PPT图标是PPT制作中经常用到的元素之一,其比文字生动,比图片简洁的特性,应用在PPT中可以极大地提高页面的可阅读性,从而深受广大PPT爱好者喜爱。...

软网推荐:轻轻松松制作与处理图标

在制作软件、网页、多媒体作品时,常常会涉及到各种各样的图标。要制作这些图标,我们当然可以使用Photoshop这样的专业软件,但用该软件制作,操作不见得简单。其实,我们只需使用一个便携版的AniFX...

服务器安全:CentOS 7中安装CSF防火墙

提到服务器的安全性,有人可能会觉得一般服务器的操作系统相对个人PC的安全性更高,更难以破解,尤其是CentOS操作系统自身也比较安全,但是因为服务器内的信息更为关键,所以笔者建议还是不要让它“裸奔”,...

什么是基因突变,乳腺癌常见的基因突变有哪些?

基因突变当一个细胞生长和分裂时,它会复制它的DNA。有时新细胞中的DNA与原始细胞不同。这叫做突变。你生来就可能有遗传的,或遗传的,你从你的父母那里继承下来的突变。如果他们中的一个生来就有一个基因,他...

.NET 7 AOT 的使用以及 .NET 与 Go 互相调用

目录...

6 张图带你彻底搞懂分布式事务 XA 模式

XA协议是由X/Open组织提出的分布式事务处理规范,主要定义了事务管理器TM和局部资源管理器RM之间的接口。目前主流的数据库,比如oracle、DB2都是支持XA协议的。...

【云原生】Prometheus AlertManager讲解与实战操作

一、概述Prometheus包含一个...

Win10桌面/手机版最深层次开发功能挖掘

IT之家讯Win10开发者预览版为我们提供了一个Win10大框架的早期概览,使开发者与热心用户都可以提前感受Win10带来的新特性,尝试新工具,而作为开发者,最关心的莫过于Windows多平台通用应...

取消回复欢迎 发表评论: