程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB6 >> 用VB計算累計時間值

用VB計算累計時間值

編輯:VB6

VB無法在日期/時間字段中存放和測量累計時間, 日期/時間存放成特定的時間點而不是一個時間跨度,並且無法在一個日期/時間變量中存 放超過24小時的值。如輸入9:30,輸入的不是某台設備工作的時間長度,而是一個特定時間, 即是早晨9:30。在日期/時間字段中輸入26:30,VB會顯示出錯信息,認為這不是一個合法的 輸入。VB不是不能進行日期/時間字段的累加計算,它在內部以浮點值的形式存放,能夠進 行累加計算,但結果不是我們希望的那樣。

筆者在工作中遇到計算累計時間問題,利用所編 的兩個簡短的函數dhcTime和dhcMinutes,得到滿意的解決。函數dhcMinutes接受以字 符串值形式輸入的累計時間作為參數,返回的時間值以分鐘數表示,這樣就可以方便地對 一系列時間值的分鐘數求和。然後用函數dhcTime將分鐘數和轉換成小時和分鐘,並以相應 的格式HH:MM字符串輸出表示。

函數dhcMinutes程序如下所示,取出以字符串值 形式輸入的累計時間的小時值乘以60,再與累計時間的分鐘值相加,產生長整數表示的分 鐘數。

Function dhcMinutes(strTimeAs String)AsLong
intPos=InStr(strTime,":")
strHours=Left(strTime,intPos-1)
strMinutes=Right(strTime,Len(strTime)-intPos)
dhcMinutes=Val(strHours)*60+Val(strMinutes)
End Function

函數dhcTime程序如下所示,將分鐘數用"\"運算符整 除得到小時數(用60整除的整數)。用MOD運算符得到分鐘數(用60整除的余數)。然後函數將輸 出格式化為通常的時間表示樣式。

Function dhcTime(lngMinutes As Long)As String
dhcTime=Format(lngMinutes\60,"0")&":"
&Format(lngMinutesMod60,"00")
End Function

例如,要求3個時間長度100:03、21:15和0:34的和,可 用下列表達式:

dhcTime(dhcMinutes("100:03")
+dhcMinutes("21:15")+dhcMinutes("0:34"))

表達式結果是字符串值"121:52"。

再如要求4個時間長度11:15、26:06、0:89和112:55 的和,可用下列表達式:

dhcTime(dhcMinutes("11:15")+dhcMinutes("26:06")
+dhcMinutes("0:89")+dhcMinutes("112:55"))

表達式結果是字符串值"151:45"。

至於時間分隔符,本文以通常的格式HH:MM輸出表示,也可以用WINDOWSAPI調用取得本機的時間分隔符,這裡不再詳述。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved