2012-11-13 84 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

對不起。我的壞 - 發佈太快了... –

相關問題