嗨
我正在尝试用VB解决一个问题,我需要一些帮助。我对这门语言非常陌生(1周)。问题是我已经创建了一个用户表单来显示两个不同的时间之间经过了多少小时和分钟,类似于一个时间表。
用户窗体由两个日历组成,每个日历下有两个文本框;一个文本框记录他们离开的小时和分钟,另外两个框记录他们回来的时间。
我使用代码将日历减去在一起(例如,日历输入-日历输出),然后将其乘以24来表示离开的小时。然后在日历下面,我有一个文本框供用户输入他们离开的小时。然后我减去24除以1小时,例如,如果是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发布于 2012-11-14 00:39:37
对于答案,您应该被告知Date包含日期和时间,并且它实际上被存储为数值,其中date构成整数部分(尽管它可以大于Integer的nax值,因此请确保您使用变量类型Long来保存date部分)。
接下来,如果你取两个日期之间的差值,并再次将答案放在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)为了检索分钟数和小时数等,请使用相同的方法
在用户窗体中根据需要为用户报告它们。
发布于 2012-11-14 00:57:11
这应该可以让你开始学习了。有关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)还要看一下CDate和Format函数。它们可用于确保某些内容采用正确的日期格式,并将日期转换为您首选的字符串表示形式。
https://stackoverflow.com/questions/13364134
复制相似问题