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

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

用VB计算累计时间值

发布: 2007-7-14 20:28 | 作者: 佚名    | 来源: 网络转载     | 查看: 59次 | 进入软件测试论坛讨论

领测软件测试网 邮电部第三研究所 张宝国

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

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

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

Function dhcMinutes(strTime As String) As Long
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(lngMinutes Mod 60, "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 输 出 表 示, 也 可 以 用WINDOWS API 调 用 取 得 本 机 的 时 间 分 隔 符, 这 里 不 再 详 述。 

延伸阅读

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


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

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