dos命令中,如何取给定日期的前一天的日期?

2024-12-02 11:45:11
推荐回答(2个)
回答1:

这个问题看似简单,却很麻烦

要考虑的因素太多

要区分大月小月(即一月是30天还是31天 )

要计算是否是闰年 (对2月的特殊处理)

这里附上 对时间的字符截取示例 详见TEST2015.BAT

需要注意的还有 

以2015-01-01为例

我把月份拆分为0和9

因为加减只能对数字才能使用 否则会意外终止运行

这里你要判断 月份的前一位 是不是 0 (即 09不能视为数字 也不能进行算术)是 0的话只能将9(即月份的第二位)转为数字 转数字的方法是 SET /A 

对日的处理一样 还要注意 2015-01-01 的前一天是2014-12-31 这里也要处理

希望能对你要说帮助

回答2:

这个就非常简单了,我写个通用的吧:
set tday=%date:~0,4%%date:~5,2%%date:~8,2%
set /a yesterday=%tday%-1
结果echo %yesterday%为20181216,如果为1号的set多几个变量结合if判断就行