VBA编程知识点(2)——日期
VBA编程知识点(2)——日期
学习自杨洋老师《全民一起学VBA》
1. excel中的日期型单元格,只能表示1900年1月1日以后的时间。1900年1月1日以前的时间,使用日期公式进行处理会出错的。
单元格存放的日期与date所能表达的日期是不一样!
2. 时期型数据的关键字是date。
存放的时间精度,精确到秒。
取值范围:公元100年1月1日0点0分0秒到公元9999年12月31日23点59分59秒。
为一个日期变量赋值具体日期时,两头应该加上#号,先日期,后时间,日期里先月后日(但显示到屏幕的时候是“年月日”的顺序),用斜杠相隔;时间用冒号相隔。
示例:d = #1/19/2018 12:23:56#
3. 获取系统时间函数
Date函数,获取当前系统日期(年/月/日)。Date不仅代表一个数据类型,也是一个函数。
Time函数,获取当前系统时间(时/分/秒)。
Now函数,获取完事系统时间(年/月/日/时/分/秒)。
4. 时间数据解析函数
Year():返回时间的年份数字
Month():返回时间的月份数字
day():返回时间的当月第几日的数字
weekday():返回时间的当周第几日的数字
hour():返回时间的当日第几小时的数字
minute():返回时间的该小时第几分钟的数字
second():返回时间的该分钟第几秒的数字
5. 时间运算函数
Datediff函数
作用:计算两个日期之间的时间差
格式:datediff(单位,起始时间,截止时间)
单位:
“yyyy”-年;“m”-月;“q”-季度;“d”-日;“y”-当年第几日,一般情况下运行结果与“d”相同;“w”-周(按实际天数计算,不足7天为0周);“ww”-周(按跨周日数计算,只要相隔一个周日即为一周);“h”-小时;“n”-分钟;“s”-秒。
示例:datediff ("yyyy",#8/3/1996#,#5/6/2011#)
Dateadd函数
作用:计算一个时间点加上指定时间后的新的时间点。
格式:dateadd(单位,跨越长度,起始时间)
单位:
“yyyy”-年;“m”-月;“q”-季度;“d”-日;“y”-当年第几日,一般情况下运行结果与“d”相同;“w”-周内第几日,一般情况下运行结果与“d”相同;“ww”-周;“h”-小时;“n”-分钟;“s”-秒。
示例:dateadd("d",500,#5/28/2016#)
6. 日期与数字是可以相加的,也可以把数字赋值给日期变量
日期型数据本质上是一个double类型的数字。
0代表1899年12月30日0时0分0秒
整数部分每增减1就是增减1天,小数部分0.1代表0.1天,即2.4小时。但是小数部分加减法运算导致的时间变化比较复杂,比如正负号的转换,溢出处理等,请勿轻易使用。
示例:
dim d as date
d = 1
msgbox d
结果为1899/12/31