vba - 从给定的日期/时间减去指定的小时数以获得新的日期/时间

标签 vba excel date vb6

我试图弄清楚如何通过从给定的到期日期/时间中减去给定的小时数来计算日期/时间,以便我知道何时需要在产品组件上启动流程步骤才能拥有它及时完成发货给客户。
例如,产品需要在 2017 年 9 月 15 日 15:00 之前准备好发货给客户
最后的组装和验证步骤,从最后到第一个,是

  • 第 15 步 - 需要 12.6 小时才能完成
  • 第 10 步 - 需要 32.1 小时才能完成
  • 步骤 05 - 需要 25.9 小时才能完成

  • 向后工作
  • 步骤 15 需要在 2017 年 9 月 15 日 15:00 之前完成才能运送给客户
  • 第 10 步需要在 2017 年 9 月 15 日凌晨 2 点 24 分之前完成,才能按时开始第 15 步
  • 步骤 05 需要在 2017 年 9 月 13 日 06:18 之前完成,才能按时开始步骤 10
  • 所有组件都需要在 2017 年 9 月 12 日凌晨 4 点 24 分之前准备好组装,以便准时开始步骤 05

  • 我花了一天时间寻找一个与我想要的足够接近的示例,我认为我将不得不对 DateTime 函数做一些事情,我只是不确定目前是什么

    最佳答案

    您可以通过简单地减去 n/24 从日期中减去 n 小时。从中。您也可以使用 TimeSerial减去小时、分钟和秒的功能。此示例说明了这两种方法,它使用这两种方法从当前时间中减去 1 个半小时。

    Sub substractDates()
      Dim d1 As Date, d2 As Date, d3 as Date
      d1 = Now()
      d2 = d1 - TimeSerial(1, 30, 0)
      d3 = d1 - 1.5 / 24
      Debug.Print d1, d2, d3
    End Sub
    

    p.s.第三种方法是使用 TimeValue("1:30:0")相当于TimeSerial(1, 30, 0) .

    关于vba - 从给定的日期/时间减去指定的小时数以获得新的日期/时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45245033/

    相关文章:

    excel - 如何从excel中的单元格中拆分内容

    java - 如何使用邮件合并将符号从 Excel 获取到 Word

    c# - 异步读取 Excel 工作表

    c# - 转换 yyyy-mm-ddThh :mm:ssz to date time - hour comes back incorrect

    date - 更改 kibana 中的日期格式

    html - 日期的默认值未显示

    vba - 工作表和工作表 obj 之间的区别

    excel - 在 .txt 文件中特定行的特定位置插入空格

    vba - 从 VBA 中的完整文件名中提取路径

    vba - 在VBA中打印平面文件中不带引号的字符串