| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 518 人关注过本帖
标题:用VB计算累计值_VisualBasic教程
只看楼主 加入收藏
vcrhome
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-7-14
收藏
 问题点数:0 回复次数:1 
用VB计算累计值_VisualBasic教程

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

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

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

FunctiondhcMinutes(strTimeAsString)AsLong
intPos=InStr(strTime,":")
strHours=Left(strTime,intPos-1)
strMinutes=Right(strTime,Len(strTime)-intPos)
dhcMinutes=Val(strHours)*60 Val(strMinutes)
EndFunction

----函数dhcTime程序如下所示,将分钟数用"\"运算符整除得到小时数(用60整除的整数)。用MOD运算符得到分钟数(用60整除的余数)。然后函数将输出格式化为通常的时间表示样式。
FunctiondhcTime(lngMinutesAsLong)AsString
dhcTime=Format(lngMinutes\60,"0")&":"
&Format(lngMinutesMod60,"00")
EndFunction

----例如,要求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调用取得本机的时间分隔符,这里不再详述。->

[此贴子已经被静夜思于2007-8-23 9:49:23编辑过]

搜索更多相关主题的帖子: VisualBasic 教程 
2007-07-18 20:02
vcrhome
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-7-14
收藏
得分:0 
顶贴!
2007-07-23 07:24
快速回复:用VB计算累计值_VisualBasic教程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015563 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved