大智网汇
综合信息情报站

datediff-VB/VBA/VBS内置函数系列之DateAdd等日

VB/VBA/VBS内置函数系列Dateadd等日期函数

VB/VBA/VBS内置函数系列

datediff-VB/VBA/VBS内置函数系列之DateAdd等日

前言

在《VB/VBA/VBS内置函数有哪些?》从分类和具体名称上介绍VB/VBA/VBS内置函数集。前篇《VB/VBA/VBS内置函数系列Datediff介绍了日期减法函数Datediff的语法、参数描述、功能和应用场景。既然有时间减法函数,自然也有时间加法函数,这就是本文要讲的Dateadd函数。

为什么作者要从时间函数开始谈论这些列函数?因为时间很重要!想想卫星、空间站、火星探测器上天的宇航活动,没有可靠的时间吗?相隔千里,只有时间才能成为同步的参考。尽管使用VB//VBA/VBS通常不需要原子钟的精度,甚至很多人对时间的概念知之甚少,但如果我们试着了解时间,我们会发现:哇,原来的时间可以如此美妙。

1、电子文件防伪是一个非常有趣和商业价值的领域。你知道实现它的方法吗?VB/VBA/VBS能实现性价比高的版本吗?

2、商业价值必须依靠时间来衡量。投资回收期、投资回报率、销售利率等都暗示着时间因素。商业活动的发展,都是在预与立中博弈,大如国家财政预算,小如企业收支预算。如何比较中外企业(如南亚国家)的业绩?外资企业如何与外国股东沟通经营成果?如何评价中国企业在国外的投资经营?所有这些都离不开时间。

3、随着互联网的发展,这颗蓝色的星球早已是地球村。抛开经贸金融交流,如何在社交娱乐中实现同步?疫情期间,各国元首的视频会议如何保持有序?

4、为什么主要终端,如PC,在下次打开时关闭电源而不停止?Windows等通用操作系统,又称分时多任务操作系统,是如何协调大家边听歌边写/看文档的?VB/VBA/VBS需要计时器吗?

虽然上述问题大多与本文无关,但时间仍然是一贯的线索,但时间太基本了,很多人理所当然。比如很多想卖钱的软件,都要考虑试用期和订阅期。笔者亲眼看到了财经行业软件(朋友)的早期版本,甚至以终端时间为控制依据。想必很多人都写VB/VBA/VBS都这么做了。只能说,如果你对时间有一点了解,那一定是一种误解!

因此,本文在介绍DateAdd函数的同时,简要介绍了其他相关的时间函数和相关概念。在后期的专题应用中,结合具体的例子,详细介绍高端!

datediff-VB/VBA/VBS内置函数系列之DateAdd等日

一、常见的日期函数

VB提供了一系列与处理日期(时间)相关的内置函数,如年(Year)月(Month)日(Day)时(Hour)分(Minute)秒(Second)周(Week)当前时间(Now),当然,CDate\eDate\Time\Timer\Weekday等函数。这些函数几乎包含了处理日期和时间的一般要求,也是常用的函数。但也有一些不常用的日期函数,作者简要介绍如下:

1、时间分解函数

主要包括Date和Time函数,都是基于系统的当前时间,前者获得日期,后者获得时间。习惯上,我们把时间分为日期和时间两部分,比如“2021-11-2217”:07:25“。看过《知VBA浮点数结构,更懂算力》的朋友(可以点击查看)应该知道,Date类型其实是Double类型,日期部分是Double的整数部分,时间是Double的小数部分。

看完VB的整数,你真的知道吗?》朋友们(可以点击查看)应该知道,计算机中的浮点类型也是整数,也就是说Double类型的Date实际上是8字节整数。而VB/VBA/VBS是一种弱型语言,这意味着用户可以在整数、日期和双精度浮点之间以任何低成本转换相同内存中的数据,而Date和Time函数可以允许整数和小数部分参与代数计算。

这不仅适用于许多巧妙的算法设计,而且性能也不低。这是VB//VBA/VBS是写高质量代码的『硬菜』。笔者曾在VB外壳中运用这一原理,将时间线与数据线完美融合,使破壳者不仅要处理数据,还要处理时间,这可以大大延迟破壳的进度。

2、时间合成函数

主要包括dateserial和timeserial,前者根据年月日合成一个date类型的日期部分,后者根据时分秒合成一个date类型的时间部分。在VB/VBA/VBS中隐含的类型的自动转换通常用字符串直接表示日期和时间,这对于许多需要时间的函数来说是可以接受的。因此,这两个函数对很多人来说都是无用的,与其单独写年月日,不如直接用连字符串在一起。

然而,在特定的应用场景中,特别是在金融和金融证券领域,这两兄弟可以结合指针使时间的灵活性超出许多人的想象。

3、提取时间属性函数

Date类型,不仅是Double,也是内存中的8字节整数,还有很多属性。常见的,年、月、日、分秒都很奇怪,还有相应的特殊函数,想必很多表姐在Excel里都是熟悉的。那一季,周,已经过了天数等属性,用的人就少了,毕竟大多数人除了自己的口袋,其实并不是真的在乎钱!更何况很多人自己的口袋还缝在管家婆身上。

因此,金钱密集型行业的员工(如金融和金融证券)有更多的机会使用这些属性。例如,在国外的许多地方,每天或每周的工资。国内企业管理后,有月度报告、季度报告、半年度报告、实时报告、动态预算、各种评估等。此时,时间属性函数,有一个美妙的用途。

datediff-VB/VBA/VBS内置函数系列之DateAdd等日

二、Dateadd函数

1、函数功能

该函数为时间加法函数,可在指定时间加上指定单位的时间,如年月日时分秒、季、周等。

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

DateAdd(IntervalAsString,NumberAsDouble,DateAsVariant)AsVariant

3、说明函数参数

Interval是Number参数的时间单位,如下图所示:

时间间隔单位

由Interval指定的Number是要增加的时间量。为什么这个参数是Double类型?

Date是指定的基准时间,不仅支持Date类型和Double类型的时间,还支持字符串的时间(如1899-12-300:00:00″)。

4、应用

该函数通常与DateDiff函数结合使用,可以在时间轴上向前或向后移动,在时间轴等应用中非常方便。当然,它也可以单独使用,比如如何获得系统的启动时间?如何获得指定年份的最后一天?如何获得指定年份的N天日期?

三、时间的概念

我相信大多数人都知道终端右下角或其他角落显示的时间。事实上,除此之外,还有磁盘文件的创建/访问/修改时间和系统时间。

众所周知,地球是一个球,自己旋转,所以有白天和黑夜,有白天不懂夜晚的黑暗。因为这是白天的工作时间,但是午夜打鼾,所以最近中美领导人视频会议的时间非常微妙。老拜登省了局,时间正好是我们早上上班的时间,要知道美国那边的人,大多数人都洗洗睡了。所以,这个时间不是另一个时间,谁在将就谁,就由你说吧。

正因为如此,才有了时区的概念和跨国时差的说法。随着现代天文地理的发展,跨区域交流越来越频繁,迫切需要一个全球时间计量,即UTC(协调世界时,又称世界统一时间和世界标准时间)。

然而,如果每个人都不分场合地使用这个全球标准时间,就会导致传统时间概念的混乱。例如,我们可以说,我们在早上90点的视频中会见了老拜登,但美丽的中国人不能这么说,否则就是瞎说。因此,为了配合各地的实际生产生活,有当地的时间,甚至有夏令时间。也就是说,在实际应用中,时间各不相同,包括北京时间、东京时间和伦敦时间。

屏幕上显示的时间基本上是指本地时间(即北京时间)。但是,如何将这么多本地时间切换到全球时间呢?因此,格林尼治时间作为时差的起点。这样,本地时间和UTC就可以随意切换了。

使用当地时间在一定时区内更方便,但超过太多时区很容易导致混乱。例如,东北地区黎明早,黑暗早。过去,一些东北学生说他们下午3点以后放学,4点吃晚饭晚。当时,作者,一个南方人,仍然感到令人难以置信。

因此,在许多场合,特别是在计算机领域,真正的时间是使用UTC时间。例如,磁盘中的文件时间、网站上的时间等。

赞(0) 打赏
以上内容(如有图片或视频亦包括在内)为自媒体平台用户上传并发布,未作人工编辑处理,不构成投资建议请自行甄别,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:wolfba@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容!

大智网汇

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 wolfba@q.com 举报,一经查实,本站将立刻删除。

投稿&软文功效网

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

微信扫一扫打赏

登录

找回密码

注册