我的老板要我写一个功能,可以确定每个员工完成工作所花费的时间,每个工作花费的时间。我创建了两个变量,一个用于工作开始的时间,另一个用于完成时间。开始时间戳是指工作开始的准确时间。但是,结束时间戳是完成它的一天,但我需要添加一天中的特定时间。
例如,我在4/23/2017 4:07:00 PM开始作业。我在2017年4月24日完成任务。分配不会在每天下午5:00左右检查完毕,因此他希望完成时间的时间戳始终正好在下午5:00,无论标记完成的具体时间如何;这里只有感兴趣的日期。
我已经成功获得了保存的确切时间戳,但是我有不一致的时间让我的固定时间坚持到确定的日期。
我用过:
orderCompleteTimeStamp = CDate(orderCompleteDate + TimeValue("17:00"))
它似乎正确显示,但是当用于计算时差时,orderCompleteTimeStamp
中存储的实际值仅为5:00,所以当它尝试做4/23/2017 1:55: 26 PM - 4/23/2017 5:00:00 PM,时差显示-1028348.9。如果我将orderCompleteTimeStamp
设置回刚刚计算正确的时间,那么我只能假设它是添加了特定时间的东西。
我有什么想法可以让它发挥作用吗?
答案 0 :(得分:1)
问题不是很清楚,这段代码对我来说很好;
23/04/2017 17:00:00
4
输出:
DateSerial()
假设您正在检查问题未指定的小时数差异。
如果问题是已有时间组件的日期,请使用Dim dateFromDB: dateFromDB = "23/4/2017 18:23:02"
Dim orderStartTimeStamp: orderStartTimeStamp = CDate("23/4/2017 13:55:26")
Dim orderCompleteDate: orderCompleteDate = DateSerial(Year(dateFromDB), Month(dateFromDB), Day(dateFromDB))
orderCompleteTimeStamp = CDate(orderCompleteDate + TimeValue("17:00"))
WScript.Echo orderCompleteTimeStamp
WScript.Echo DateDiff("h", orderStartTimeStamp, orderCompleteTimeStamp)
提取日期组件并创建新的日期变量。
23/04/2017 17:00:00
4
输出:
array