|
sl543001
中级用户
  
积分 499
发帖 225
注册 2008-12-30
状态 离线
|
『楼 主』:
[原创]批处理时差显示 [SYBC彩色演示代码]
动态刷新显示当前时间到某个时间的时差,以及时差秒数
使用模块:SYBC[1.1.44],SYBT[修改],之前某代码的框架
[ Last edited by sl543001 on 2010-7-9 at 00:52 ]
附件
1: 时差.gif (2010-7-9 00:23, 9.61 K,下载次数: 1)
附件
2: 时差.gif (2010-7-9 00:52, 9.37 K)
|

SYBNQQ:354324773
|
|
2010-7-9 00:23 |
|
|
sl543001
中级用户
  
积分 499
发帖 225
注册 2008-12-30
状态 离线
|
『第
2 楼』:
框架来源
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 ]
|

SYBNQQ:354324773
|
|
2010-7-9 00:25 |
|
|
sl543001
中级用户
  
积分 499
发帖 225
注册 2008-12-30
状态 离线
|
『第
3 楼』:
主要就上边的10几行代码,嵌入到框架里[用上面的:JM1替换掉框架代码的:JM1]
将附加部分添加到框架代码结尾,就可以使用了
|

SYBNQQ:354324773
|
|
2010-7-9 00:29 |
|
|
sl543001
中级用户
  
积分 499
发帖 225
注册 2008-12-30
状态 离线
|
『第
4 楼』:
看电影无聊,花了一个小时,写了这点代码,看不明白的可以问我
QQ 354324773 Q群 3401238
|

SYBNQQ:354324773
|
|
2010-7-9 00:34 |
|
|
sl543001
中级用户
  
积分 499
发帖 225
注册 2008-12-30
状态 离线
|
『第
5 楼』:
解释一下这句话,省的大家看不明白
sybc 11410%duantou%%$JM3%剩余秒数: %$JM1%%Ts%.%Tl% %$JM3%秒 ;
一下三个变量属于此框架专属公共变量
%duantou% 是那个绿色的双圈字符
%$JM3% 表示黄子
%$JM1% 表示白字
所以可以看成
在"11410"这个位置[14行10列],显示一个"绿色的双圈字符"然后显示"黄色的"剩余秒数:字样,然后"白色的"秒数信息,然后显示"黄色的"秒字
[ Last edited by sl543001 on 2010-7-9 at 00:40 ]
|

SYBNQQ:354324773
|
|
2010-7-9 00:37 |
|
|
sl543001
中级用户
  
积分 499
发帖 225
注册 2008-12-30
状态 离线
|
|
2010-7-9 17:57 |
|
|
sl543001
中级用户
  
积分 499
发帖 225
注册 2008-12-30
状态 离线
|
『第
7 楼』:
此脚本,可以在win7中使用
|

SYBNQQ:354324773
|
|
2010-7-21 23:17 |
|
|