0

你好

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

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

我已经使用代码将日历一起减去(例如日历输入 - 日历输出),然后将其乘以 24 以指示距离的小时数。然后在日历下我有一个文本框供用户输入他们离开的时间。然后我按小时减去 24,例如,如果它是 24 -15,它将显示为 9(当天的 9 小时),然后我会将其添加到他们插入到文本框 Hour in(返回时间)中的数字中。例如 14。然后我会将它们加到一起,例如 9 + 14 = 23 并将其显示在另一个文本框 Total Hours 中。因此它将显示 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
4

2 回答 2

1

好的答案,您应该被告知 Date 包含日期和时间,它实际上存储为一个数值,其中日期构成整数部分(尽管它可以大于 nax 值,Integer因此请确保使用变量键入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 等,只需使用相同的方法

在用户表单中根据需要为用户报告它们。

于 2012-11-13T16:39:37.430 回答
0

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

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函数。它们可用于确保某些内容采用正确的日期格式并将日期转换为您喜欢的字符串表示形式。

于 2012-11-13T16:57:11.253 回答