框架来源
http://www.cn-dos.net/forum/viewthread.php?tid=50583
关键代码
主要部分:
:JM1
::载入大数字信息
call :dsz
::设定目标时间
set timemb=24:00:00.00
::显示小框架
call :FK : %$JM1%时差计算程序
::显示提示信息
sybc 12110%duantou%%$JM3%描述信息:%$JM1%这只是一个简单的示例,用以演示和测试SYBC的性能.
:JM1_1
::记录当前时间
set timexz=%time%
::计算时差
call :sybt %timexz% %timemb%
::拆分时差的小数部分(厘秒部分)
set /a ts=T/100,tl=T%%100
::补足位数
if %tl% lss 10 set tl=0%tl%
::补足位数
set TT=000000000%Ts%.%tl%
::显示各时间
sybc 10610%duantou%%$JM3%现在时间: %$JM1%%timexz%;%duantou%%$JM3%目标时间: %$JM1%%timemb%;%duantou%%$JM3%剩余时间: %$JM1%%timecj%
::显示大字版时差
for /l %%A in (0,1,7) do set /a zb=10910+%%A*7&&call sybc !zb!%$JM3%%%dsz!timecj:~%%A,1!%%
::显示小字版时差
sybc 11410%duantou%%$JM3%剩余秒数: %$JM1%%Ts%.%Tl% %$JM3%秒 ;
::显示大字版秒差
for /l %%A in (-1,-1,-9) do set /a zb=11573+%%A*7&&call sybc !zb!%$JM3%%%dsz!TT:~%%A,1!%%
::返回刷新
goto :JM1_1
goto :EOF
附加部分:
:dsz
set dsz0=▓▓▓;▓ ▓;▓ ▓;▓ ▓;▓▓▓;
set dsz1= ▓; ▓; ▓; ▓; ▓;
set dsz2=▓▓▓; ▓;▓▓▓;▓ ;▓▓▓;
set dsz3=▓▓▓; ▓;▓▓▓; ▓;▓▓▓;
set dsz4=▓ ▓;▓ ▓;▓▓▓; ▓; ▓;
set dsz5=▓▓▓;▓ ;▓▓▓; ▓;▓▓▓;
set dsz6=▓▓▓;▓ ;▓▓▓;▓ ▓;▓▓▓;
set dsz7=▓▓▓; ▓; ▓; ▓; ▓;
set dsz8=▓▓▓;▓ ▓;▓▓▓;▓ ▓;▓▓▓;
set dsz9=▓▓▓;▓ ▓;▓▓▓; ▓;▓▓▓;
set dsz:= ; ▓ ; ; ▓ ; ;
set dsz.= ; ; ; ; ▓ ;
goto :eof
:SYBT
IF "%1" == "" EXIT /B 0
FOR /F "DELIMS=:. TOKENS=1,2,3,4" %%N IN ("%1") DO SET O=1%%O&SET P=1%%P&SET Q=1%%Q&SET /A N=100+%%N
IF "%2" == "" SET /A T=N*360000+O*6000+P*100+Q-36610100&&EXIT /B !T!
FOR /F "DELIMS=:. TOKENS=1,2,3,4" %%M IN ("%2") DO SET I=1%%N&SET J=1%%O&SET K=1%%P&SET /A H=100+%%M
SET /A H=H-N,I=I-O,J=J-P,K=K-Q,T=H*360000+I*6000+J*100+K
if %t% lss 1 set /a T=T+8640000
set /a H=T%%8640000/360000,I=T%%360000/6000,J=T%%6000/100,K=T%%100
if %H% lss 10 set h=0%h%
if %i% lss 10 set i=0%i%
if %j% lss 10 set j=0%j%
if %k% lss 10 set k=0%k%
set timecj=%H%:%I%:%J%.%K%
EXIT /B !%T%!
Last edited by sl543001 on 2010-7-9 at 00:33 ]