目前还没发现VBA中有直接的函数能够将完整的年月日时分秒的文本格式日期转换成日期型日期的,那只能使用间接实现的办法。用dateserial + timeserial的方法。因为dateserial和timeserial两个都是时间格式的,故可以直接相加,形成的效果和正常日期格式一致。如下图c和f,都是日期+时间形成的。那么再和其他的日期做比较就方便的多了。

If Hour(Range("q" & ddfp)) >= 8 And Hour(Range("q" & ddfp)) < 16 Then
ThisWorkbook.Sheets("运营日报").Range("r" & ddfp) = DateDiff("n", .Range("u" & dft), .Range("aa" & dft)) / 60 '订单分配用时,时间相隔小时数
ThisWorkbook.Sheets("运营日报").Range("s" & ddfp) = DateDiff("n", .Range("aa" & dft), .Range("x" & dft)) / 60 '仓配交接用时,时间相隔小时数
ThisWorkbook.Sheets("运营日报").Range("u" & ddfp) = WorksheetFunction.Sum(ThisWorkbook.Sheets("运营日报").Range("R" & ddfp & ":" & "T" & ddfp))

ElseIf Hour(Range("q" & ddfp)) >= 16 And Hour(Range("q" & ddfp)) < 24 Then
ThisWorkbook.Sheets("运营日报").Range("r" & ddfp) = 0
ThisWorkbook.Sheets("运营日报").Range("s" & ddfp) = 0
a = VBA.DateSerial(Year(Range("q" & ddfp)), Month(Range("q" & ddfp)), Day(Range("q" & ddfp)) + 1)   '日期函数,和worksheetfunction的date函数使用方法和效果都一样。
b = VBA.TimeSerial(8, 0, 0)   '时间函数,和worksheetfunction的time函数方法和效果一样。
c = a + b

d = VBA.DateSerial(Year(Range("ab" & ddfp)), Month(Range("ab" & ddfp)), Day(Range("ab" & ddfp)))
e = VBA.TimeSerial(Hour(Range("ab" & ddfp)), Minute(Range("ab" & ddfp)), Second(Range("ab" & ddfp)))
f = d + e

h = Hour(f - c) + Minute(f - c) / 60        '小时数= 小时数+分钟数/60

VBA当中的时间日期函数的更多相关文章

  1. SQL-数学、字符串、时间日期函数和类型转换

    --数学函数 --ABS绝对值,select ABS(-99)--ceiling取上限,select CEILING(4.5)--floor去下限select FLOOR(4.5)--power 几次 ...

  2. SQLite中的时间日期函数(转)

    SQLite包含了如下时间/日期函数: datetime().......................产生日期和时间date()...........................产生日期tim ...

  3. PostgreSQL的时间/日期函数使用

    PostgreSQL的常用时间函数使用整理如下: 一.获取系统时间函数 1.1 获取当前完整时间 select now(); david=# select now(); now ----------- ...

  4. SQL servcer 时间日期函数、数据类型转换

    1.时间日期函数 2.数据类型转换 3.习题 建立两个表,一个部门表,一个人员表.部门:部门的编号,部门的名称,部门的职责.人员:人员的编号,姓名,年龄,性别,cid所属部门

  5. [转] PostgreSQL的时间/日期函数使用

    PS:http://blog.csdn.net/love_rongrong/article/details/6712883 字符串模糊比较 日期类型的模糊查询是不能直接进行的,要先转换成字符串然后再查 ...

  6. SQL server 数据库——数学函数、字符串函数、转换函数、时间日期函数

    数学函数.字符串函数.转换函数.时间日期函数 1.数学函数 ceiling()--取上限  select ceiling(oil) as 油耗上限 from car floor()--取下限 sele ...

  7. SQLite中的时间日期函数

    SQLite包含了如下时间/日期函数: datetime().......................产生日期和时间 date()...........................产生日期 t ...

  8. 【2017-03-13】Tsql 数学函数、字符串函数、转换函数、时间日期函数

    一.数学函数(针对值类型操作) 1.ceiling():取上限 只要小数点后有数字大于0,整数位自动进1 2.floor():取下限 将小数点位舍去,不管小数点位大小 3.round(四舍五入的值,保 ...

  9. SQl Server 函数篇 数学函数,字符串函数,转换函数,时间日期函数

    数据库中的函数和c#中的函数很相似 按顺序来, 这里价格特别的 print  可以再消息栏里打印东西 数学函数 ceiling()  取上限   不在乎小数点后面有多大,直接忽略 floor()   ...

随机推荐

  1. 20140604 word表格中打钩 循环右移

    1.如在在word表格中打钩 符号->其他符号->字体(wingdings2) 2.循环右移 方法1: #include<stdio.h> void move(char *s) ...

  2. jmeter 查看结果树之查看响应的13种方法

    查看结果树查看响应有哪几种方法,可通过左侧面板底部的下拉框选择 1 Text 查看结果树中请求的默认格式为Text,显示取样器结果.请求.响应数据3个部分内容. 取样器结果: 默认Raw展示,可以切换 ...

  3. CentOS 7 用 yum 安装 Nginx

    在 CentOS 7 中,直接使用 yum 安装 Nignx 会提示无下载源.因此,需要添加 Nginx 的下载源到 yum: sudo rpm -Uvh http://nginx.org/packa ...

  4. 笔记-Linux安装中文版man

    使用环境为Ubuntu,安装中文版man,同时保留了英文原版,步骤如下: 第一种方法 sudo apt-get update # 更新你的下载源目录,此步骤可省略. sudo apt-get inst ...

  5. http11.Http11OutputBuffer.SocketOutputBuffer.doWrite

    这是一个错误. 我在spring框架中,创建了一个基类SuperBaseController, 并且使用了@ModelAttribute用来给HttpServletRequest和HttpServle ...

  6. vue $emit 子传父

    我们使用子组件传递值给父组件使用 $emit 代码 <!DOCTYPE html> <html lang="en"> <head> <me ...

  7. sublime Text3安装及配置与解决安装插件失败

    1.下载sublime Text3的官网:https://www.sublimetext.com/32.安装Package Control   下载Package Contoral地址: 链接:htt ...

  8. Codeforces Round #563 (Div. 2) E. Ehab and the Expected GCD Problem

    https://codeforces.com/contest/1174/problem/E dp 好题 *(if 满足条件) 满足条件 *1 不满足条件 *0 ///这代码虽然写着方便,但是常数有点大 ...

  9. Java集合中的Map接口怎么使用?

    Map(双列集合框架) 1.Map接口及实现类概述 Map 接口提供三种collection 视图,允许以键集.值集或键-值映射关系集的形式查看某个映射的内容.映射顺序 定义为迭代器在映射的 coll ...

  10. 原生js如何获取某一元素的高度

    三种方法: 1.document.getElementById("id").style.height,这种方法的前提是必须之前已经显示的在css中声明过height,才能取得正确的 ...