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

我想由用户输入一个日期,然后存入一个变量中,然后根据这个变量,获取到该日期的前一天的日期值,如何编写?set/pdate1=输入开始日期,如2015-09-10:echo... 我想由用户输入一个日期,然后存入一个变量中,然后根据这个变量,获取到该日期的前一天的日期值,如何编写?
set /p date1=输入开始日期,如2015-09-10:
echo %date1%
set /a date2=%date1%-1
echo date2=%date2%

以上这样不行,到底该如何写呢?
展开
 我来答
_AlwaysGo
2015-10-09 · TA获得超过184个赞
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:78.9万
展开全部

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

要考虑的因素太多

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

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

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

需要注意的还有 

以2015-01-01为例

我把月份拆分为0和9

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

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

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

希望能对你要说帮助

我爱皎月
2018-12-17
知道答主
回答量:10
采纳率:0%
帮助的人:7081
展开全部
这个就非常简单了,我写个通用的吧:
set tday=%date:~0,4%%date:~5,2%%date:~8,2%
set /a yesterday=%tday%-1
结果echo %yesterday%为20181216,如果为1号的set多几个变量结合if判断就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式