位置: 编程技术 - 正文
推荐整理分享批处理bat计算两个时间差(bat批处理命令大全),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:bat批处理命令教程,bat批处理命令大全,批处理 计算,bat批处理文件的语句,bat 批处理,bat批处理命令大全,bat批处理命令教程,bat 批处理,内容如对您有帮助,希望把文章链接给更多的朋友!
这个是脚本代码[保存为etime.bat放在当前路径下即可:
计算两个时间点差的函数批处理etime
今天兴趣大法思考了好多bat的问题,以至于通宵在论坛逛看到有个求时间差的"函数"被打搅调用地方不少(大都是测试代码执行效率的)
这个代码的算法是统一找时间点凌晨0::.然后计算任何一个时间点到凌晨的时间差(单位跑秒)然后任意两个时间点求时间差就是他们相对凌晨时间点的时间数的差对这样的非法8进制数的处理用到了一些技巧,还有两个时间参数不分先后顺序,可全可点,但是这个代码一行是可以省去的(既然是常被人掉用自然体积越小越好):
再研究下,有更简短的版本这个代码是我在cn-dos写过的,今天再优化了下更简短代码的算法深入一层:用hmsw(各字母代表一个两位数字)表示标准时间我们记他到凌晨的相对时间数为TxTx=hmsw时间点-0::.时间点=h**+m**+*s+whmsw 8位进制数表示的时间数(单位0.秒)就是hmsw跑秒hmsw=w+*s+*m+*hhmsw-Tx=*h+*m所以Tx=hmsw-(*h+*m)=hmsw-*(*h+m)那么Tx_2-Tx_1=hmsw_2-hmsw_1-*(*(h_2-h_1)+(m_2-m_1)) 对与这样的非法8进制数我们给他们每个前面加上1就可以保证是十进制数又能保证差值不变对于非同一天的时间(这种情况较少,除非你在接近0晨时调用)我们把用-去替换负号再用set/a赋值就是下面代码用到的算法Tx_2-Tx_1=hmsw_2-hmsw_1-*(*(1h_2-1h_1)+(1m_2-1m_1))
给difftime前面加上_是为了表明不是临时写的子过程也为了以后连接库函数标签的唯一性
// 题外话:对于子过程,若启用了变量延迟,原则上三行都可以写完,尽量写紧凑些(因为没人读),但是对于算法,思路性的东西要能舍得笔墨,越详细越好,我发现即使你的代码写得再好,不会有人全搬,都会小修改,你自己初写代码时不可能考虑到所有人使用的具体情况,自然没人愿意很详细看你的代码,倒是你的思路为别人提供了一个方法,在此意义上函数库的作用起到方法库的作用
DOS批处理 函数定义与用法 Whatitis,whyit`simportantandhowtowriteyourown.Description:Theassumptionis:Abatchscriptsnippetcanbenamedafunctionwhen:1....ithasacallableentrancepoint.2....oncompletionexecutioncontinuesrightaftertheco
批处理bat命令 获取当前盘符和当前目录和上级目录的代码 批处理命令获取当前盘符和当前目录%~d0是当前盘符%cd%是当前目录可以用echo%cd%进行打印测试以下例子是命令行编译VisualStudio编写的程序:@echooffsetb=%cd%//
ECHO 不换行实现方法 我想用批处理实现向s.txt中多次分别导入文本例如:aaaa","bbbb","cccc","dddd"实现s.txt内效果如:aaaabbbbccccdddd可是echo命令每次导入的时候会强制换行,如:aaa
标签: bat批处理命令大全
本文链接地址:https://www.jiuchutong.com/biancheng/371856.html 转载请保留说明!下一篇:DOS批处理 函数定义与用法(dos命令批量处理文件)
友情链接: 武汉网站建设