批处理bat计算两个时间差

2019-09-19 06:41:42刘景俊

Tx_2-Tx_1=hmsw_2-hmsw_1-4000*(160*(1h_2-1h_1)+(1m_2-1m_1))


rem  兼容时间点跨天的情行,时间格式00:00:00.00 或者 0:00:00.00 皆可
:_difftime <Begin_Time> <End_Time> [ret] //返回两个时间点的差值(单位0.01秒)
Setlocal enabledelayedexpansion&set b=0%1&set e=0%2&set c=1!e:~-11!-1!b:~-11!&set c=!c::=!
set/a c=%c:.=%-4000*(160*(1%e:~-11,-9%-1%b:~-11,-9%)+1%e:~-8,-6%-1%b:~-8,-6%)
endlocal & (if %3.==. (echo %c:-=8640000-%) else set/a %3=%c:-=8640000-%)&exit/b

给difftime前面加上_是为了表明不是临时写的子过程也为了以后连接库函数标签的唯一性

// 题外话:
对于子过程,若启用了变量延迟,原则上三行都可以写完,尽量写紧凑些(因为没人读),但是对于算法,
思路性的东西要能舍得笔墨,越详细越好,我发现即使你的代码写得再好,不会有人全搬,都会小修改,
你自己初写代码时不可能考虑到所有人使用的具体情况,自然没人愿意很详细看你的代码,倒是你的思路为
别人提供了一个方法,在此意义上函数库的作用起到方法库的作用

相关文章 大家在看