本帖最后由 Mr.Yang 于 2020-4-7 02:40 编辑
优化:受第一次执行时取频率的影响 而造成的微量时间误差.
现在能确保从开始到结束的区间内不会执行其他代码 而对结果造成影响.
时间_取间隔.e
(8.14 KB, 下载次数: 17)
变量名 | 类 型 | 静态 | 数组 | 备 注 | Count | LARGE_INTEGER | | | Frequency | LARGE_INTEGER | | | a | 整数型 | | | i | 整数型 | | | 间隔时间 | 双精度小数型 | | | 局_时 | 整数型 | | | 局_分 | 整数型 | | | 局_秒 | 整数型 | | | 局_毫秒 | 双精度小数型 | | | 返回文本 | 文本型 | | | QueryPerformanceCounter (Count ) 如果真 (Frequency.QuadPart = 0 ) QueryPerformanceFrequency (Frequency )标记 = 选择 (标记 = “”, “耗时”, 标记) 计次循环首 (取数组下标 (时间标记, 1 ), i ) 如果真 (时间标记 [i ] [1 ] = 标记 )   a = i  跳出循环 ()  计次循环尾 () 如果真 (a = 0 ) 输出调试文本 ( #引号 + “时间_取间隔” + #引号 + “ 标记不存在!”) 返回 (“”)间隔时间 = (Count.QuadPart - 到长整数 (时间标记 [a] [2])) ÷ Frequency.QuadPart × 1000
局_时 = (间隔时间 % 86400000 ) ÷ 3600000 局_分 = (间隔时间 % 86400000 % 3600000 ) ÷ 60000 局_秒 = (间隔时间 % 86400000 % 3600000 % 60000 ) ÷ 1000 局_毫秒 = 四舍五入 (间隔时间 % 86400000 % 3600000 % 60000 % 1000, 3 ) 如果真 (局_时 ≠ 0 ) 返回文本 = 返回文本 + 到文本 (局_时 ) + “时” 如果真 (局_分 ≠ 0 ) 返回文本 = 返回文本 + 到文本 (局_分 ) + “分” 如果真 (局_秒 ≠ 0 ) 返回文本 = 返回文本 + 到文本 (局_秒 ) + “秒” 如果真 (局_毫秒 ≠ 0 ) 返回文本 = 返回文本 + 到文本 (局_毫秒 ) + “毫秒”返回文本 = 标记 + “:” + 返回文本输出调试文本 (返回文本 )返回 (返回文本 )
|