亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > BAT > 正文

批處理bat計算兩個時間差

2020-03-29 19:56:03
字體:
來源:轉載
供稿:網友

這個是腳本代碼[保存為etime.bat放在當前路徑下即可:

 

復制代碼 代碼如下:

:etime <begin_time> <end_time> <return>
rem 所測試任務的執行時間不超過1天 // 骨瘦如柴版
setlocal&set be=%~1:%~2&set cc=(%%d-%%a)*360000+(1%%e-1%%b)*6000+1%%f-1%%c&set dy=-8640000
for /f "delims=: tokens=1-6" %%a in ("%be:.=%")do endlocal&set/a %3=%cc%,%3+=%dy%*("%3>>31")&exit/b

 

計算兩個時間點差的函數批處理etime

今天興趣大法思考了好多bat的問題,以至于通宵
在論壇逛看到有個求時間差的"函數"被打攪調用地方不少(大都是測試代碼執行效率的)

 

復制代碼 代碼如下:

:time0
::計算時間差(封裝)
@echo off&setlocal&set /a n=0&rem code 隨風 @bbs.bathome.cn
for /f "tokens=1-8 delims=.: " %%a in ("%~1:%~2") do (
set /a n+=10%%a%%100*360000+10%%b%%100*6000+10%%c%%100*100+10%%d%%100
set /a n-=10%%e%%100*360000+10%%f%%100*6000+10%%g%%100*100+10%%h%%100)
set /a s=n/360000,n=n%%360000,f=n/6000,n=n%%6000,m=n/100,n=n%%100
set "ok=%s% 小時 %f% 分鐘 %m% 秒 %n% 毫秒"
endlocal&set %~3=%ok:-=%&goto :EOF

 

這個代碼的算法是統一找時間點凌晨0:00:00.00然后計算任何一個時間點到凌晨的時間差(單位跑秒)
然后任意兩個時間點求時間差就是他們相對凌晨時間點的時間數的差
對09這樣的非法8進制數的處理用到了一些技巧,還有兩個時間參數不分先后順序,可全可點,
但是這個代碼一行是可以省去的(既然是常被人掉用自然體積越小越好):

 

復制代碼 代碼如下:

@echo off&setlocal&set/a n=0&set "s=+:%~1^&echo -:%~2"
for /f "tokens=1-5 delims=.:" %%a in ('echo %s%') do (rem code 隨風 @bbs.bathome.cn
set/a n%%a=10%%b%%100*360000+10%%c%%100*6000+10%%d%%100*100+10%%e%%100)
set /a s=n/360000,n=n%%360000,f=n/6000,n=n%%6000,m=n/100,n=n%%100
set "ok=%s% 小時 %f% 分鐘 %m% 秒 %n% 毫秒"
endlocal&(if %3. equ . (echo %ok:-=%) else set %~3=%ok:-=%)&exit/b

 

再研究下,有更簡短的版本
這個代碼是我在cn-dos寫過的,今天再優化了下更簡短
代碼的算法深入一層:
用hmsw(各字母代表一個兩位數字)表示標準時間
我們記他到凌晨的相對時間數為Tx
Tx=hmsw時間點-0:00:00.00時間點=h*3600*100+m*60*100+100*s+w
hmsw 8位10進制數表示的時間數(單位0.01秒)就是hmsw跑秒
hmsw=w+100*s+10000*m+1000000*h
hmsw-Tx=640000*h+4000*m
所以Tx=hmsw-(640000*h+4000*m)=hmsw-4000*(160*h+m)
那么Tx_2-Tx_1=hmsw_2-hmsw_1-4000*(160*(h_2-h_1)+(m_2-m_1))
對與09這樣的非法8進制數我們給他們每個前面加上1就可以保證是十進制數又能保證差值不變
對于非同一天的時間(這種情況較少,除非你在接近0晨時調用)我們把用8640000-去替換負號
再用set/a賦值
就是下面代碼用到的算法
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前面加上_是為了表明不是臨時寫的子過程也為了以后連接庫函數標簽的唯一性

// 題外話:
對于子過程,若啟用了變量延遲,原則上三行都可以寫完,盡量寫緊湊些(因為沒人讀),但是對于算法,
思路性的東西要能舍得筆墨,越詳細越好,我發現即使你的代碼寫得再好,不會有人全搬,都會小修改,
你自己初寫代碼時不可能考慮到所有人使用的具體情況,自然沒人愿意很詳細看你的代碼,倒是你的思路為
別人提供了一個方法,在此意義上函數庫的作用起到方法庫的作用

 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人福利视频在线观看| 国产精品视频区1| 欧美洲成人男女午夜视频| 欧洲永久精品大片ww免费漫画| 国产精品一区二区女厕厕| 欧美在线观看日本一区| 国产mv免费观看入口亚洲| xvideos亚洲人网站| 97视频在线观看免费高清完整版在线观看| 国产精品自拍视频| 国产精品影院在线观看| 欧美亚洲一级片| 91久久久久久久久久久| 日韩电影免费在线观看中文字幕| 亚洲春色另类小说| 亚洲最大福利视频| 色在人av网站天堂精品| 91福利视频网| 日韩天堂在线视频| 中文字幕不卡在线视频极品| 亚洲国产91精品在线观看| 久久成人人人人精品欧| 亚洲国产高清高潮精品美女| 欧美高清视频免费观看| 日韩av在线影院| 九色成人免费视频| 亚洲欧美中文日韩v在线观看| 国产精品美女在线观看| 亚洲人成电影在线观看天堂色| 亚洲欧美国产高清va在线播| 欧美日韩一区二区免费在线观看| 国产一区私人高清影院| 不卡av电影在线观看| 亚洲精品自拍第一页| 亚洲欧洲av一区二区| 91高清免费在线观看| 色综合久久悠悠| 亚洲第一av网| 成人福利在线视频| 国产一区二区三区高清在线观看| 97**国产露脸精品国产| 黑人巨大精品欧美一区免费视频| 久久精品99久久久香蕉| 国产美女精彩久久| 久久精品国产欧美亚洲人人爽| 日韩av在线网站| 一区二区三区www| 日韩视频免费看| 激情av一区二区| 69av成年福利视频| 欧美黄色三级网站| www.美女亚洲精品| 在线观看国产欧美| 午夜精品久久久久久久久久久久| 欧美亚洲国产日韩2020| 免费不卡欧美自拍视频| 伊人久久久久久久久久| 国产91精品视频在线观看| 国产精品美女无圣光视频| 亚洲a∨日韩av高清在线观看| 欧美丰满老妇厨房牲生活| 精品香蕉在线观看视频一| 色综合天天综合网国产成人网| 欧美另类精品xxxx孕妇| 日韩视频免费在线| 日韩欧美中文字幕在线播放| 亚洲欧洲国产一区| 日韩电影中文字幕av| 国产精品一区二区久久| 亚洲无亚洲人成网站77777| 91国内揄拍国内精品对白| 成人在线精品视频| 精品久久久91| 成人www视频在线观看| 日韩高清人体午夜| 九九九热精品免费视频观看网站| 亚洲人精品午夜在线观看| 夜色77av精品影院| 亚洲伊人一本大道中文字幕| 欧美日韩成人黄色| 日韩视频免费大全中文字幕| 国产日本欧美一区二区三区| 国产成人在线亚洲欧美| 久久久久久久久久久亚洲| 亚洲日本成人网| 成人写真视频福利网| 欧美日韩性生活视频| 韩国精品久久久999| 国产精品欧美一区二区三区奶水| 8x海外华人永久免费日韩内陆视频| 欧美成人午夜免费视在线看片| 国产欧美日韩专区发布| 91嫩草在线视频| 久久久精品欧美| 成人免费福利在线| 成人免费自拍视频| 欧美日韩免费区域视频在线观看| 日韩欧美国产网站| 另类天堂视频在线观看| 亚洲a级在线观看| 国产亚洲欧美aaaa| 欧美国产日本在线| 亚洲国产另类久久精品| 亚洲一级黄色片| 91精品视频一区| 欧美激情奇米色| 欧美在线一区二区视频| 欧美丝袜一区二区| 欧美激情视频网址| 米奇精品一区二区三区在线观看| 国产成人精品日本亚洲| 日韩成人在线免费观看| 国产精品欧美日韩一区二区| 亚洲精品永久免费| 黄色一区二区三区| 一本色道久久88综合亚洲精品ⅰ| 亚洲最新在线视频| 日韩精品极品视频免费观看| 亚洲欧美中文字幕| 亚洲wwwav| 精品国产户外野外| 国产精品大片wwwwww| 亚洲人成毛片在线播放| 久久久久久亚洲精品中文字幕| 欧美激情一区二区三级高清视频| 日韩视频免费观看| 亚洲综合社区网| 欧美黑人极品猛少妇色xxxxx| 亚洲欧美国产日韩中文字幕| 国产视频一区在线| 欧美福利视频网站| 日本成人在线视频网址| 欧美激情网友自拍| 精品久久久久久久中文字幕| 国产做受高潮69| 91人人爽人人爽人人精88v| 国产精品老牛影院在线观看| 成人激情免费在线| 欧美激情videos| 欧美理论电影在线播放| 国产精品视频播放| 亚洲视频自拍偷拍| 国产高清在线不卡| 国产日本欧美视频| 中文字幕av一区二区| 日本精品视频在线| 国产成人精品免高潮在线观看| wwwwwwww亚洲| 欧美交受高潮1| 中文字幕无线精品亚洲乱码一区| 国产精品96久久久久久| 91久热免费在线视频| 精品国产欧美一区二区三区成人| 亚洲精品久久久久久久久久久| 欧美激情一区二区三区久久久| 欧美精品电影在线| 国产99久久精品一区二区 夜夜躁日日躁| 欧美日韩国产精品一区二区不卡中文| 国产在线播放不卡| 国产精品永久免费| 亚洲精品乱码久久久久久金桔影视| 亚洲久久久久久久久久| 亚洲综合日韩在线| 久久精品国产91精品亚洲|