按工作小时数计算工资

时间:2010-08-03 20:24:14

标签: math datetime vb6

嘿所有,我想弄清楚如何计算员工退休时的工资。这是我目前使用的代码:

 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的正确时间?

大卫

3 个答案:

答案 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")