![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 06:49 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求助,计算N天前的日期 |
| 可打印版本 711 / 4 |
| 第1楼 a303862146 | 发表于 2008-04-23 03:43 |
| 初级用户 发帖 10 积分 32 | |
|
求助,计算N天前的日期 @echo off
: 1 set /p d=输入向前推的天数 set nian=%date:~0,4% set yue=%date:~5,2% set ri=%date:~8,2% for %%i in (1 3 5 7 8 10 12) do (if %yue% equ %%i if %ri% gtr 31 set ri=31) for %%i in (4 6 9 11) do (if %yue% equ %%i if %ri% gtr 30 set ri=30) for %%i in (2) do (if %yue% equ %%i if %ri% gtr 29 set ri=29) if %ri% leq 0 set /a %yue%-1 if %yue% leq 0 set /a %nian%-1 set c=%nian%%yue%%ri% set /a q=%c%-%d% echo %q% pause goto 1 什么地方不对?能不能帮我改下。。。谢谢 ───────────────── 版务记录 ───────────────── 执行:HAT 操作:在帖子标题中增加搜索关键字 说明:原标题"求助,帮忙改下这个关于日期的批处理"不利于论坛搜索 ───────────────── 版务记录 ───────────────── [ Last edited by HAT on 2008-10-19 at 23:50 ] |
|
| 第2楼 qwd | 发表于 2008-04-23 04:44 |
| 初级用户 发帖 56 积分 161 | |
|
第一:由for己经设定日数为 29-30 三数其中之一,不会是其它数了.
第二:日月不可能小于或等于0 第三:年月日三个单位不统一,怎么能放在一起计算. |
|
| 第3楼 bat-zw | 发表于 2008-04-23 10:59 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
我以前写的,你参考吧: 计算任意日期:
|
|
| 第4楼 terse | 发表于 2008-04-23 11:06 |
| 银牌会员 发帖 946 积分 2,404 | |
|
@echo off
set p1=%date:~0,4% set p2=%date:~5,2% set p3=%date:~8,2% :tm for /l %%a in (1,1,3) do for /f "delims=0 tokens=*" %%i in ("%p%%a%") do set p%%a=%%i set/a pn="!(p1%%4) & !(!(p1%%100)) | !(p1%%400)" for /f "tokens=%p2%" %%i in ("0 31 59 90 120 151 181 212 243 273 304 334") do set/a n=%%i+p3 if %P2% gtr 2 set/a n+=pn if %P2% equ 2 if %P3% equ 29 if %pn% equ 0 echo %p1%年不是闰年 所以%P2%月不会有%P3%日&pause&goto end echo. echo %p2%月%p3%日 是 %p1% 年的第 %n% 天&set p1= echo. echo. 输入日期查询任意天 echo. :end set/p p1=输入年(格式2008): set/p p2=输入月(格式1: set/p p3=输入日(格式1): if "%p1%"=="" goto exit goto tm |
|
| 第5楼 terse | 发表于 2008-04-23 11:09 |
| 银牌会员 发帖 946 积分 2,404 | |
|
[ Last edited by terse on 2008-4-23 at 11:11 AM ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |