中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 我发个奥运倒计时的吧,虽然已经开幕了...
作者:
标题: 我发个奥运倒计时的吧,虽然已经开幕了... 上一主题 | 下一主题
BC
中级用户




积分 338
发帖 175
注册 2007-10-21
状态 离线
『楼 主』:  我发个奥运倒计时的吧,虽然已经开幕了...

@echo off&title 北京奥运会开幕倒计时
:main
::下面一句的秒提取有点问题...
for /f "tokens=1,2,3 delims=.:" %%a in ("%time%") do (set h=%%a&set m=%%b&set s=%%c)
::下面一句的日子提取有点问题...
for /f "tokens=3 delims=- " %%d in ("%date%") do (if %%d==08 (set day=8) else (set day=%%d))
set kday=8

::jk=距离开幕天数x24gs=过去的秒数ss=剩下的时间jh=距离开幕的小时jm=距离开幕的分钟js=距离开幕的秒数
:jisuan
if %s%==07 (set s=7)
if %s%==08 (set s=8)
if %s%==09 (set s=9)
if %day%==09 ( set day=9 )
if %kday% lss %day% ( goto :aoyun )
set /a jk=(%kday%-%day%)*24
set /a gs=(%h%*3600+%m%*60+%s%)
set /a ss=24*3600-%gs%
set /a jh=%ss%/3600
set /a js=%ss%%%3600
set /a js2=%js%
if %js% geq 60 (goto :jisuanmin) else (set /a jm=0)
:xianshi
set /a zh=%jk%+%jh%-4
echo 距离北京奥运会开幕还有%zh%小时%jm%分钟%js%秒
echo 现在时间是%h%:%m%:%s%
ping /n 2 127.1>nul&cls
set zong=%zh%%jm%%js%
if %zong%==000 (goto :aoyun) else (goto :main)
:jisuanmin
set /a jm1=%js%-(%js%%%60)
set /a jm=%jm1%/60
set /a js=%js2%%%60
::pause
goto :xianshi

:aoyun
set /a col=%random%%%9+1
color 0%col%
echo 奥运来喇!
ping /n 1 127.1>nul&cls
goto :aoyun



C:\
C:\Del BC
2008-8-17 12:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
BC
中级用户




积分 338
发帖 175
注册 2007-10-21
状态 离线
『第 2 楼』:  

现在才发上来原因是那几天不能上网...

这个好像有点问题,希望有高手能指教一下.

还有那个搞到剪贴版的discuz代码是什么啊?



C:\
C:\Del BC
2008-8-17 12:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 3 楼』:  Re 2楼

把你的代码放到code标签里



2008-8-17 13:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  

可以研究一下别人写的
@echo off&color ac&mode con cols=50 lines=10
title 奥运倒计时--made by zw19750516(cn-dos)
goto one
:two
set n=2&set var=08-07&goto begin
:one
set n=1&set var=%date:~5,-4%
:begin
set month=%var:~1,1%&set number=29
set /a month-=1
for /l %%i in (1,1,%month%) do call :lp %%i
if %var:~3,1% equ 0 (set /a number+=%var:~4,1%) else (set /a number+=%var:~3,2%)
set str=%str% %number%
if not %n% equ 2 goto two
for /f "tokens=1,2" %%i in ("%str%") do set /a day=%%j-%%i
if %time:~6,1% equ 0 (set /a m=60-%time:~7,1%) else (set /a m=60-%time:~6,2%)
if %time:~3,1% equ 0 (set /a f=60-%time:~4,1%) else (set /a f=60-%time:~3,2%)
if %time:~,1% equ 0 (set /a s=44-%time:~1,1%) else (set /a s=44-%time:~,2%)
if %m% equ 60 set /a m-=60&set /a f+=1
if %f% equ 60 set /a f-=60&set /a h+=1
if %s% geq 24 set /a s-=24&set /a day+=1
cls
echo.&echo.&echo.
echo     现在离北京奥运开幕还有%day%天%s%小时%f%分%m%秒
echo.
echo     我们每个中国人都在期盼这一自豪时刻的到来!
set n=0&set number=0
ping /n 127.1>nul&goto :begin
:lp
for %%i in (1,3,5,7,8,10) do if %%i equ %1 set /a number+=31
for %%i in (4,6,9,11) do if %%i equ %1 set /a number+=30
goto :eof

@echo off&color ac&mode con cols=50 lines=10
title 奥运倒计时
for /l %%a in (1 1 100) do call set "t=%%t%%"
for /f "tokens=1-3 delims=./- " %%a in ("%date%") do (
  set /a sy=%%a,sm=100%%b%%100,sd=100%%c%%100
)
for /l %%i in (%sm% 1 8) do call :loop %%i
set /a mt-=sd
for /f "tokens=1-3 delims=.: " %%a in ("%time%") do (
  set /a ss=20-100%%a%%100-1,ff=60-100%%b%%100,mm=60-100%%c%%100
)
echo.&echo.
echo     我们每个中国人都在期盼着这一自豪时刻的到来!
echo.&echo.&echo.
set var=%time:~7,1%
:lis
if %mm% equ 0 set /a ff-=1,mm=59
if %ff% equ 0 set /a ss-=1,ff=59
if %ss% lss 0 set /a ss=%ss:~-1%,mt-=1
if %ss% equ 0 set /a ss=23,mt-=1
set /p=   离北京奥运开幕还有%mt%天%ss%小时%ff%分%mm:~-2%秒%time:~9%毫秒<nul
set /p=%t%<nul
set num=%time:~7,1%
if %var% neq %num% (set/a mm-=1&set var=%time:~7,1%)
goto lis
:loop
for /f "tokens=%~1" %%a in ("31 29 31 30 31 30 31 8") do set /a mt+=%%a
goto :eof




2008-8-17 13:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
BC
中级用户




积分 338
发帖 175
注册 2007-10-21
状态 离线
『第 5 楼』:  

果然比我的简单好多...



C:\
C:\Del BC
2008-8-17 13:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: