Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 以小时和分钟为单位计算日期之间的总时间_Excel_Userform_Vba - Fatal编程技术网

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

Excel 以小时和分钟为单位计算日期之间的总时间,excel,userform,vba,Excel,Userform,Vba,嗨 我正在尝试使用VB解决一个问题,我需要一些帮助。我对这门语言很陌生(1周)。问题是我创建了一个用户表单来显示两个不同时间之间经过了多少小时和分钟,类似于时间表 用户表单由两个日历组成,每个日历下有两个文本框;每个盒子记录他们离开的时间和分钟,另外两个盒子记录他们回来的时间 我使用代码将日历减到一起(例如calendar in–calendar out),然后将其乘以24以表示离开的时间。 然后在日历下,我有一个文本框供用户输入他们离开的时间。然后我按小时减去24 e、 如果它是24-15,它

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

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

我使用代码将日历减到一起(例如calendar in–calendar out),然后将其乘以24以表示离开的时间。 然后在日历下,我有一个文本框供用户输入他们离开的时间。然后我按小时减去24 e、 如果它是24-15,它将显示9(当天的9小时),那么我会将它添加到他们在文本框中插入的数字Hour in(返回时间)。e、 g 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

对于答案,您应该被告知Date包含日期和时间,它实际上存储为一个数字值,其中日期构成整数部分(尽管它可以大于
整数的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等,请使用相同的方法


在用户表单中根据需要向用户报告这些信息。

这应该可以让您开始。有关日期差异语法,请参见此

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)
尺寸d1为日期,d2为日期,差异为变量
“样本日期

d1=日期时间。现在欢迎matthew。请为您自己和我们的变量使用更有意义的名称,使其更易于实现。把它想象成一本书,作者将他们的角色命名为Char1,Char2,Char3,而不是John Strong和Lisa McSomething。此外,我还将对您的OP进行一些更改,使其更易于阅读。您似乎正在使用VB.NET。问题是关于VBA的。@TimWilliams这些都是VBA函数:)我一直在尝试查找Access,这是我找到的唯一示例。Access使用整数(天)、小时(小时)、分钟(分钟)、秒(秒)工作。