中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]批处理能做日期运算吗?
作者:
标题: [已结]批处理能做日期运算吗? 上一主题 | 下一主题
newrogram
新手上路





积分 5
发帖 1
注册 2007-3-26
状态 离线
『楼 主』:  [已结]批处理能做日期运算吗?

比如日期为2007-01-01,如何计算前一天的日期 2007-03-01,如何计算前一天的日期 [ Last edited by HAT on 2008-10-25 at 18:27 ]


   此帖被 +1 点积分    点击查看详情   
评分人:【 joyezzu 分数: +1  时间:2009-8-29 05:25


2007-3-26 05:09
查看资料  发送邮件  发短消息  网志   编辑帖子
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  

To newrogram:   对于批处理来计算日期的问题,一般会比较麻烦,我推荐你用下面这个命令行工具(DateX.exe),它可以很好的完成日期的计算问题。   下面给几个演示的例子:
::计算2007-01-01的前1天: C:\>datex -d 2007-01-01 -f yyyy-mm-dd -o -1 2006-12-31 ::计算2007--03-07的后7天: C:\>datex -d 2007-03-07 -f yyyy\mm\dd -o 7 2007\03\14
  说明:-d 参数后面指定日期,如果不指定,就是当前日期了;-f 参数后面指定输出的日期格式,可以灵活变化;-o 参数后面指定要计算的天数,正数表示向后计算,负数表示向前计算。


   此帖被 +1 点积分    点击查看详情   
评分人:【 分数: +1  时间:2010-6-10 10:15


附件 1: datex.rar (2007-3-26 07:44, 34.22 KiB, 下载附件所需积分 1 点 ,下载次数: 239)
2007-3-26 07:44
查看资料  发送邮件  发短消息  网志   编辑帖子
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 3 楼』:  

呵呵,利用%time:~0,2%截取的变量可以完成呢。 我就做了一个判断是否闰年的小东西出来玩。。


2007-3-26 14:31
查看资料  发短消息  网志   编辑帖子
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  

Originally posted by flyinspace at 2007-3-26 01:31: 呵呵,利用%time:~0,2%截取的变量可以完成呢。 我就做了一个判断是否闰年的小东西出来玩。。
兄写错了吧,time 是计算时间的,而楼主是想计算日期; 另外,批处理计算日期的确比较麻烦,比如计算1900-04-11的前70天如何计算呢?除了要判断月份的大小(30或者31天)之外,还要判断是否是闰年的问题,我想问题还是比较复杂的。 我还是推荐用这个工具来完成。 [ Last edited by lxmxn on 2007-3-26 at 02:59 PM ]


2007-3-27 00:13
查看资料  发送邮件  发短消息  网志   编辑帖子
fjcase
初级用户





积分 53
发帖 23
注册 2007-2-2
状态 离线
『第 5 楼』:  

没有自带的工具可以用吗?


2007-3-27 03:34
查看资料  发短消息  网志   编辑帖子
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 6 楼』:  

Originally posted by lxmxn at 2007-3-26 11:13 AM: 兄写错了吧,time 是计算时间的,而楼主是想计算日期; 另外,批处理计算日期的确比较麻烦,比如计算1900-04-11的前70天如何计算呢 ...
不好意思.我写错了。 计算日期确实比较麻烦. 至于你说的就要靠自定义了 例如. 1,定义一年12个月每一个月的天数. 2,定义输入的年份,之前的天还是之后的.多少天. 3,判断是否闰年 4,是闰年则2月加一天.不是则不变 5,两个call 做自加和自减运算(天数的运算)<其中要包含对年,月,日的考虑> 这个写得比较麻烦...虽然我已经写出来了。但好象没有多大意义.. 还不如直接用c++写呢.那样代码简单得多.


2007-3-27 05:38
查看资料  发短消息  网志   编辑帖子
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 7 楼』:  

Originally posted by flyinspace at 2007-3-26 16:38: 不好意思.我写错了。 计算日期确实比较麻烦. 至于你说的就要靠自定义了 例如. 1,定义一年12个月每一个月的天数. 2,定义输入的年份,之 ...
  不需要用C++编写了,2楼的工具就可以了。


2007-3-27 05:47
查看资料  发送邮件  发短消息  网志   编辑帖子
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 8 楼』:  

嗯。同意:) 已经有的工具何必还要再写呢:) 而且还是免费的。哈哈。 再说了。这个问题好简单。也不是写不出来。


2007-3-27 05:54
查看资料  发短消息  网志   编辑帖子
stornager
中级用户

scriptlover


积分 328
发帖 131
注册 2007-3-25
状态 离线
『第 9 楼』:  2楼的工具GREAT。

谢谢楼住引荐。


2007-3-27 05:57
查看资料  发送邮件  发短消息  网志   编辑帖子
pz
新手上路





积分 10
发帖 5
注册 2007-2-27
状态 离线
『第 10 楼』:  

2楼的工具不错。


2007-3-27 13:41
查看资料  发短消息  网志   编辑帖子
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 11 楼』:  

Originally posted by lxmxn at 2007-3-25 06:44 PM: To newrogram:   对于批处理来计算日期的问题,一般会比较麻烦,我推荐你用下面这个命令行工具(DateX.exe),它可以很好的完成日期的 ...
想问一下。。 若是我把我写的计算日期的批处理拿出来分享是不是比较无聊?? 而且写的批处理判断分之太多。。 感觉在这里拿出来会比较丢人。


2007-3-27 13:54
查看资料  发短消息  网志   编辑帖子
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 12 楼』:  

To flyinspace:   兄如果可以发出来,那再好不过了,也是一种方法、一种思路嘛,也可以让论坛的朋友学习一下,改进一下。


2007-3-27 23:12
查看资料  发送邮件  发短消息  网志   编辑帖子
29984365
初级用户





积分 39
发帖 15
注册 2007-4-4
状态 离线
『第 13 楼』:  

这个东西貌似很好玩


2007-4-4 05:09
查看资料  发短消息  网志   编辑帖子
wqjcaogen
初级用户





积分 22
发帖 7
注册 2007-4-5
状态 离线
『第 14 楼』:  可以试试这个

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


2007-4-5 06:00
查看资料  发送邮件  发短消息  网志   编辑帖子
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 15 楼』:  

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 点积分    点击查看详情   
评分人:【 mazai 分数: +1  时间:2009-6-9 21:33


2007-4-5 07:11
查看资料  发短消息  网志   编辑帖子

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


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



论坛跳转: