以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]日期时间段计算问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=185315)

--  作者:chnfo
--  发布时间:2023/2/16 13:52:00
--  [求助]日期时间段计算问题
比如说下班时间是17:00,vars.add("X",gettype(date),"17:00")

但此时output.show(vars("X")),显示结果=2023-02-16 17:00:00

如果某一天实际下班时间是  dim t as date = #2023-01-15 17:21#

\'正常情况下,表示超时下班分钟数=21分钟

如果这样写:
Dim x As TimeSpan = t - Vars("X")
Output.Show(x.TotalMinutes)

就会报错:编译错误:没有为类型“Date”和“Object”定义运算符“-”。
错误代码:Dim x As TimeSpan = t - Vars("X")

这个应当怎么正确使用?

--  作者:有点蓝
--  发布时间:2023/2/16 13:55:00
--  
Dim x As TimeSpan = t - cdate(Vars("X"))
--  作者:chnfo
--  发布时间:2023/2/16 14:03:00
--  
vars.add("X", GetType(Date), "17:00")
Dim t As Date = #01/15/2023 17:21#

Dim x As TimeSpan = t - CDate(Vars("X"))
Output.Show(x.TotalMinutes)

运行结果正常情况下应当是21分钟才对。
但现在显示的结果显然有问题。

因为定的是17:00下班,某一天的下班时间是17:21分,那么就是超时加班21分钟哦

也就是说只需要计算时间差的分钟数,不需要日期
[此贴子已经被作者于2023/2/16 14:06:36编辑过]

--  作者:有点蓝
--  发布时间:2023/2/16 14:16:00
--  
这种计算必须要保证日期一致