• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

用VB计算累计时间值

发布: 2007-6-21 21:57 | 作者: -  | 来源: -  | 查看: 17次 | 进入软件测试论坛讨论

领测软件测试网

   

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

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网