嘿所有,我想弄清楚如何计算员工退休时的工资。这是我目前使用的代码:
Dim theStartTime As Date
Dim theEndTime As Date
Dim totalTime As String
theStartTime = "16:11:06"
theEndTime = "18:22:01"
totalTime = Format(CDbl((theEndTime - theStartTime) * 24), "#0.0")
可行的工作时间是:2小时11分
现在,根据上面的计算代码,我得到2.2。我需要添加什么才能让它计算出2:11而不是2:20的正确时间?
大卫
答案 0 :(得分:7)
请注意,2.2小时不 2:20,它是2:12。
更改
Format(CDbl((theEndTime - theStartTime) * 24), "#0.0")
到
Format(theEndTime - theStartTime, "h:mm")
您正在获得正确的价值,只需在打印时将其四舍五入。 theEndTime - theStartTime
的时间跨度等于两次之间的差异。正如您所发现的那样,将它乘以24将为您提供不同的小时数。但是,您必须再次除以24以使用日期/时间格式。
查看format dates and time in VB6的所有方法。
答案 1 :(得分:1)
首先,我强烈建议尽可能使用.NET框架(使用易于使用的TimeSpan类)。
但是,在VB6中处理你应该能够使用DATEDIFF函数(自从我触及VB6以来已经很多年了,所以特定的语法可能有点偏离
Dim iHours As Integer, iMins As Integer
iMins = DateDiff("n", theStartTime, theEndTime)
iHours = iMins / 60
iMins = iMins Mod 60
答案 2 :(得分:0)
您还应尝试将其转换为Currency
类型,该类型可以表示所有数值(小数点左侧4位数内,右侧15位数字)。
Format(CCur((theEndTime - theStartTime) * 24), "#0.00")