2012-11-13 76 views
0

计算在几小时和几分钟之间的日期之间的总时间

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

用户窗体包含两个日历,每个日历下有两个文本框;每个盒子记录他们离开的小时和分钟,还有两个盒子记录他们回来的时间。

我已经使用代码一起减去日历(例如日历中的日历),然后将此时间乘以24来指示离开的时间。 然后在日历下面我有一个文本框让用户在他们离开的时候输入。然后,我在小时输出 例如减去24。如果是24 -15,它会出现9(当天9小时),然后我将它添加到他们插入文本框小时在(返回时间)中的数字。例如14.然后,我将它们加在一起,例如, 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 
+1

欢迎马修。请为你自己和你的变量使用更多有意义的名字,并让我们更容易理解。把它想象成一本书,作者给他们的角色命名不是John Strong和Lisa McSomething,而是Char1,Char2,Char3。 –

+0

图片不存在于您的文章中,请尝试重新上传。此外,我会做一些更改您的OP,使其更好一点可读 –

回答

1

确定的答案,你应该被告知日期包含日期和时间,它实际存储为其中的日期弥补了整数部分(数值虽然也可以大于Integer的nax值,因此请确保使用变量类型Long来保存日期部分)。

下一页如果你把两个日期之间的区别,并把这个问题的答案在Date变量再次否则很容易给你你正在寻找的答案:

dtDiff = dtEnd - dtStart 

正如您现在可以进行此项以下:

intDaysDiff = Int(dtDiff) 'As the number of days between the two dates is expected to be small enough we can use the Int() function 
intHoursDiff = Hour(dtDiff) 
intMinutesDiff = Minute(dtDiff) 

程序来检索minutein hourin并且如你想为刚刚用同样的方法

报告他们回来用户形式的用户。

+0

我一直在试图找到这个访问,这是我找到的唯一例子。 Access可以使用Int(天),Hour(小时)Minute(Minutes),Seconds(Seconds)。 – Elias

0

这应该让你开始。有关date diff语法,请参见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功能。可以使用它们来确保某些内容处于正确的日期格式,并将日期转换为您的首选字符串表示形式。

+0

你似乎在使用VB.NET问题是关于VBA。 –

+0

@TimWilliams这些都是VBA功能:) – Brad

+0

对不起。我的坏 - 发布太快了... –

相关问题