![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 23:31 |
共 48,040 主题排行 / 350,125 发帖 / 今日 1 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]批处理能做日期运算吗? |
| 可打印版本 6,815 / 52 |
| 第1楼 newrogram | 发表于 2007-03-26 05:09 |
| 新手上路 发帖 1 积分 5 | |
|
[已结]批处理能做日期运算吗? 比如日期为2007-01-01,如何计算前一天的日期
2007-03-01,如何计算前一天的日期 [ Last edited by HAT on 2008-10-25 at 18:27 ] |
|
| 第2楼 lxmxn | 发表于 2007-03-26 07:44 |
| 版主 发帖 4,938 积分 11,386 | |
|
To newrogram: 对于批处理来计算日期的问题,一般会比较麻烦,我推荐你用下面这个命令行工具(DateX.exe),它可以很好的完成日期的计算问题。 下面给几个演示的例子:
说明:-d 参数后面指定日期,如果不指定,就是当前日期了;-f 参数后面指定输出的日期格式,可以灵活变化;-o 参数后面指定要计算的天数,正数表示向后计算,负数表示向前计算。 附件 datex.rar (34.22 KiB) |
|
| 第3楼 flyinspace | 发表于 2007-03-26 14:31 |
| 银牌会员 发帖 517 积分 1,206 | |
|
呵呵,利用%time:~0,2%截取的变量可以完成呢。
我就做了一个判断是否闰年的小东西出来玩。。 |
|
| 第4楼 lxmxn | 发表于 2007-03-27 00:13 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by flyinspace at 2007-3-26 01:31: 兄写错了吧,time 是计算时间的,而楼主是想计算日期; 另外,批处理计算日期的确比较麻烦,比如计算1900-04-11的前70天如何计算呢?除了要判断月份的大小(30或者31天)之外,还要判断是否是闰年的问题,我想问题还是比较复杂的。 我还是推荐用这个工具来完成。 [ Last edited by lxmxn on 2007-3-26 at 02:59 PM ] |
|
| 第5楼 fjcase | 发表于 2007-03-27 03:34 |
| 初级用户 发帖 23 积分 53 | |
|
没有自带的工具可以用吗?
|
|
| 第6楼 flyinspace | 发表于 2007-03-27 05:38 |
| 银牌会员 发帖 517 积分 1,206 | |
Originally posted by lxmxn at 2007-3-26 11:13 AM: 不好意思.我写错了。 计算日期确实比较麻烦. 至于你说的就要靠自定义了 例如. 1,定义一年12个月每一个月的天数. 2,定义输入的年份,之前的天还是之后的.多少天. 3,判断是否闰年 4,是闰年则2月加一天.不是则不变 5,两个call 做自加和自减运算(天数的运算)<其中要包含对年,月,日的考虑> 这个写得比较麻烦...虽然我已经写出来了。但好象没有多大意义.. 还不如直接用c++写呢.那样代码简单得多. |
|
| 第7楼 lxmxn | 发表于 2007-03-27 05:47 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by flyinspace at 2007-3-26 16:38: 不需要用C++编写了,2楼的工具就可以了。 |
|
| 第8楼 flyinspace | 发表于 2007-03-27 05:54 |
| 银牌会员 发帖 517 积分 1,206 | |
|
嗯。同意:)
已经有的工具何必还要再写呢:) 而且还是免费的。哈哈。 再说了。这个问题好简单。也不是写不出来。 |
|
| 第9楼 stornager | 发表于 2007-03-27 05:57 |
| 中级用户 发帖 131 积分 328 | |
|
2楼的工具GREAT。 谢谢楼住引荐。
|
|
| 第10楼 pz | 发表于 2007-03-27 13:41 |
| 新手上路 发帖 5 积分 10 | |
|
2楼的工具不错。
|
|
| 第11楼 flyinspace | 发表于 2007-03-27 13:54 |
| 银牌会员 发帖 517 积分 1,206 | |
Originally posted by lxmxn at 2007-3-25 06:44 PM: 想问一下。。 若是我把我写的计算日期的批处理拿出来分享是不是比较无聊?? 而且写的批处理判断分之太多。。 感觉在这里拿出来会比较丢人。 |
|
| 第12楼 lxmxn | 发表于 2007-03-27 23:12 |
| 版主 发帖 4,938 积分 11,386 | |
|
To flyinspace: 兄如果可以发出来,那再好不过了,也是一种方法、一种思路嘛,也可以让论坛的朋友学习一下,改进一下。 |
|
| 第13楼 29984365 | 发表于 2007-04-04 05:09 |
| 初级用户 发帖 15 积分 39 | |
|
这个东西貌似很好玩
|
|
| 第14楼 wqjcaogen | 发表于 2007-04-05 06:00 |
| 初级用户 发帖 7 积分 22 | |
|
可以试试这个 echo dt=cdate(#01/01/07#)-1>%temp%\tmp.vbs
echo s=right(year(dt),4) ^& "-" ^& right("0" ^& month(dt),2) ^& "-" ^& right("0" ^& day(dt),2)>>%temp%\tmp.vbs echo wscript.echo s>>%temp%\tmp.vbs for /f %%i in ('cscript /nologo %temp%\tmp.vbs') do @echo %%i |
|
| 第15楼 slore | 发表于 2007-04-05 07:11 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
right(year(dt),4) ^& "-" ^& right("0" ^& month(dt),2) ^& "-" ^& right("0" ^& day(dt),2)?
echo s=year(dt) ^& "-" ^& month(dt) ^& "-" ^& day(dt)>>%temp%\tmp.vbs不是更简单? |
|
| 1 2 3 4 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |