![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 18:43 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]纯dos实现给定两个日期间隔的天数? |
| 可打印版本 1,164 / 6 |
| 第1楼 microshaoft | 发表于 2009-11-28 14:19 |
| 新手上路 发帖 4 积分 4 | |
|
[求助]纯dos实现给定两个日期间隔的天数? [求助]纯dos实现给定两个日期间隔的天数?
类似于 vbs的datediff 谢谢先 |
|
| 第2楼 HAT | 发表于 2009-11-28 15:26 |
| 版主 发帖 5,017 积分 9,023 | |
|
批处理函数库里面有计算日期、时间、星期的方法
http://www.cn-dos.net/forum/viewthread.php?tid=45204 |
|
| 第3楼 yishanju | 发表于 2009-11-28 18:40 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
你以为DOS是白粉啊,还有纯不纯DOS的说法。
实在太搞笑了。 |
|
| 第4楼 newxso | 发表于 2009-11-29 11:19 |
| 初级用户 发帖 101 积分 73 来自 GZ | |
Originally posted by yishanju at 2009-11-28 18:40: 纯DOS是指DOS操作系统(通常要用DOS启动盘进入),它不同于Windows下命令提示符中启动的DOS。在本论坛中的 《DOS疑难解答 & 问题讨论 (解答室) 》就是以研究纯DOS为主。 |
|
| 第5楼 DOSforever | 发表于 2009-11-30 21:28 |
| 金牌会员 发帖 2,239 积分 4,639 | |
Originally posted by newxso at 2009-11-29 11:19: 那得看你所说的 Windows 是哪种类型的 Windows,如果是对 Windows 9x/Me 的话或许可以说不同于命令提示符中启动的 DOS 。 http://www.cn-dos.net/forum/viewthread.php?tid=37268 |
|
| 第6楼 DOSforever | 发表于 2009-11-30 21:36 |
| 金牌会员 发帖 2,239 积分 4,639 | |
|
回正题 可以试下 4DOS 的 @doy 变量函数,当然,还要用 @eval 变量函数计算一下。比如,计算下今天 11-30-2009 距 6-4-2009 相差几天,可以用 %@eval[%@doy[11-30-09]-%@doy[6-4-09]] 这个表达式得出。不过这个不能跨年计算,不知能否符合你的要求。
|
|
| 第7楼 tongzj | 发表于 2009-12-01 16:40 |
| 初级用户 发帖 43 积分 49 | |
|
抛砖引玉 @echo off
setlocal enabledelayedexpansion set /p date1=请输入日期1(格式:年-月-日): set /p date2=请输入日期1(格式:年-月-日): call :date2days %date1% set date1=%days% call :date2days %date2% set date2=%days% set /a interval=%date2%-%date1% echo 间隔天数:%interval% pause goto :eof :date2days set days= set var=%1 set year1=%var:~0,4% set month1=%var:~5,2% if /i %month1% lss 10 (set /a month1=%month1:~1,1%-1) else (set /a month1=%month1%-1) set day1=%var:~8,2% if /i %day1% lss 10 set day1=%day1:~1,1% set /a runyear=%year1%%%4 set m1=31 if /i %runyear%==0 (set m2=29) else (set m2=28) set m3=31 set m4=30 set m5=31 set m6=30 set m7=31 set m8=31 set m9=30 set m10=31 set m11=30 set m12=31 for /l %%a in (1,1,%month1%) do (set /a day1=!day1!+!m%%a!) set /a days=%year1%*365+%year1%/4+%day1% |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |