你的位置:睿鑫网络 >> 编程 >> 编程语言 >> vb6 >> 详细内容 在线投稿

用VB计算累计时间值

排行榜 收藏 打印 发给朋友 举报 来源: 网络   发布者:未知
热度0票  浏览0次 时间:2010年3月26日 01:14
睿鑫网络u#D `2J6Q |;xI

VB无法在日期/时间字段中存放和测量累计时间, 日期/时间存放成特定的时间点而不是一个时间跨度,并且无法在一个日期/时间变量中存 放超过24小时的值。如输入9:30,输入的不是某台设备工作的时间长度,而是一个特定时间, 即是早晨9:30。在日期/时间字段中输入26:30,VB会显示出错信息,认为这不是一个合法的 输入。VB不是不能进行日期/时间字段的累加计算,它在内部以浮点值的形式存放,能够进 行累加计算,但结果不是我们希望的那样。睿鑫网络 I&g*L9oDP~,oP!Eq

睿鑫网络 \zM.m_ i@

笔者在工作中遇到计算累计时间问题,利用所编 的两个简短的函数dhcTime和dhcMinutes,得到满意的解决。函数dhcMinutes接受以字 符串值形式输入的累计时间作为参数,返回的时间值以分钟数表示,这样就可以方便地对 一系列时间值的分钟数求和。然后用函数dhcTime将分钟数和转换成小时和分钟,并以相应 的格式HH:MM字符串输出表示。

ouq F.b0{g&X i+\0

k uy-Y R!L+k(O0函数dhcMinutes程序如下所示,取出以字符串值 形式输入的累计时间的小时值乘以60,再与累计时间的分钟值相加,产生长整数表示的分 钟数。

cj-S$h,H}nNQ0x0 睿鑫网络@!c y-IE3orl:[\h

FunctiondhcMinutes(strTimeAsString)AsLong睿鑫网络+f&fCB4t w+x

睿鑫网络+?7{~4p"g|@%Ch S

intPos=InStr(strTime,":")

,G;]P%P6x0 睿鑫网络`3Z3Hlc Hi

strHours=Left(strTime,intPos-1)

p0^h.y]d K7L0

2vpP@xt ymeIl0strMinutes=Right(strTime,Len(strTime)-intPos)

9?s$zGt${&V1? U8k0 睿鑫网络)x2tZ DgI,J:e

dhcMinutes=Val(strHours)*60+Val(strMinutes)睿鑫网络v5{zd@&r8zh8X

,Xz(it2^)vH7B0EndFunction

zU.xh!@5lu_0

.\\\ |XG~t0函数dhcTime程序如下所示,将分钟数用"\"运算符整 除得到小时数(用60整除的整数)。用MOD运算符得到分钟数(用60整除的余数)。然后函数将输 出格式化为通常的时间表示样式。睿鑫网络X-o?z_"Dt:Gij

:s&uP)?[#P*A0FunctiondhcTime(lngMinutesAsLong)AsString

K xD7v_w;B v3Ue0 睿鑫网络9^!NG|3y `1JH[%P"E

dhcTime=Format(lngMinutes\60,"0")&":"

;oJ+SNL"R7g-L0

ax.J3CO)G(Q2T0&Format(lngMinutesMod60,"00")睿鑫网络}d.\,A"m;C3Z[;S

睿鑫网络7Z?U"NTB O J _ s

EndFunction

c3uR9KQvJ(N0 睿鑫网络z6yY&qH+wI8G

例如,要求3个时间长度100:03、21:15和0:34的和,可 用下列表达式:睿鑫网络 Wt_UE M*{ G4_0D }

?u w8cIk0KO+wrs F0dhcTime(dhcMinutes("100:03")

` ]qi7n.R!o5?0 睿鑫网络LJU(`cdE

+dhcMinutes("21:15")+dhcMinutes("0:34"))睿鑫网络_(nX#?`^uY

"WA,P*Yn;Na1\ ~ i0表达式结果是字符串值"121:52"。

N1~D5G'a#Wt'[%ZC0

8o\l'Wy9Q0再如要求4个时间长度11:15、26:06、0:89和112:55 的和,可用下列表达式:睿鑫网络gAx;L-Zk

睿鑫网络7r(S [#jdVJ

dhcTime(dhcMinutes("11:15")+dhcMinutes("26:06")

3Gm%cF*u0 睿鑫网络L?(c OH aE

+dhcMinutes("0:89")+dhcMinutes("112:55"))

8F2p BF|q:\0 睿鑫网络y"~7DD(z.d @.B9H

表达式结果是字符串值"151:45"。

9F(y9k s|[3D$EIi)P0

O)|2X0s^1dXc[[0至于时间分隔符,本文以通常的格式HH:MM输出表示,也可以用WINDOWSAPI调用取得本机的时间分隔符,这里不再详述。

F"s#V]YbQ2M Q2Lj/^0
上一篇 下一篇

网络资源