计算以小时和分钟为单位的日期之间的总时间

时间:2012-11-13 16:00:28

标签: excel excel-vba userform vba

你好

我正在尝试使用VB解决问题,我需要一些帮助。我对这门语言很新(1周)。问题是我创建了一个用户表单来显示两个不同时间之间经过了多少小时和分钟,类似于时间表。

用户表单由两个日历组成,每个日历下有两个文本框;每个盒子用于记录他们离开的小时和分钟,另外两个盒子用于记录他们返回的时间。

我已经使用代码一起减去日历(例如日历在 - 日历中),然后将此时间乘以24以表示小时数。 然后在日历下我有一个文本框供用户输入他们离开的小时。然后我逐小时减去24小时 例如如果它是24 -15它将出现9(当天9小时)然后我将它添加到他们插入文本框小时(返回时间)中的数字。例如,然后我将它们加在一起,例如9 + 14 = 23并将其显示在另一个文本框总时数中。因此它显示23意味着23小时。

然后我想要显示另外两个文本框来表示分钟。一分钟分钟然后分钟。

我有问题转换这些分钟,例如,如果外出时间是15:50,第二天的时间是15:55它显示为24(在一个文本框中)和105分钟(在另一个文本框)。我希望将分钟添加到小时,并在分钟文本框中保留剩余分钟的余额。这应该显示24(在一个文本框中)和5(在另一个文本框中)。

最终目标是得到一个结果,表明一个人缺席了几天,几小时和几分钟,例如2天,5小时和10分钟。关于如何修改我的代码以实现此目的的任何想法?

这是我的代码。

请帮助

Dim number1 As Date
Dim number2 As Date
Dim number3 As Integer
Dim number4 As Integer
Dim Number5 As Integer
Dim Number6 As Integer
Dim answer  As Integer
Dim answer2 As Integer
Dim answer3 As Integer
Dim answer4 As Integer
Dim answer5 As String

number1 = DTPicker1
number2 = DTPicker2
number3 = Txthourout
number4 = TxtHourin
Number5 = TxtMinuteout
Number6 = TxtMinuetIn


answer = number2 - number1
answer2 = answer * 24
answer3 = answer2 - number3
answer4 = answer3 + number4

answer5 = Number5 + Number6


TextBox1.Text = answer4
TextBox2.Text = answer5

End Sub

2 个答案:

答案 0 :(得分:1)

好的答案你应该被告知Date包含日期和时间,它实际上存储为一个数值,其中日期弥补整数部分(虽然它可以大于{{1的nax值)所以请确保使用变量类型Integer来保存日期部分。)

下一步如果您取两个日期之间的差异并将该答案再次放入Long变量,它将很容易为您提供所需的答案:

Date

您现在可以对此执行以下操作:

dtDiff = dtEnd - dtStart

对于retreiving minutein hourin而言,只需使用相同的方法

在用户表单中为用户报告它们。

答案 1 :(得分:0)

这应该让你开始。有关日期差异语法,请参阅此link

Dim d1 As Date, d2 As Date, diff As Variant
'sample dates
d1 = DateTime.Now   '<--you'd use your calendar 1 here
d2 = DateTime.DateAdd("h", 4, d1)   '<--you'd use your calendar 2 here

'change "h" to what ever part of the different you want.
diff = DateTime.DateDiff("h", d1, d2)

另请参阅CDateFormat函数。它们可用于确保某些内容采用正确的日期格式,并将日期转换为首选字符串表示形式。

相关问题