如何用DOS命令的date命令获得当前日期(只要月日)的前一天?

doudou321 2009-09-17 08:26:51
如题
...全文
2813 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shrekz 2010-11-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 luokebin110 的回复:]
不用那么复杂
@echo off
set DaysAgo=1
set Today=%date:~0,4%%date:~5,2%%date:~8,2%
set /a PassDays=%Today%-1
echo %PassDays%
pause
[/Quote]
需要注意润年和日期小于差值时的月份变化等。
xiaoxbb 2010-11-08
  • 打赏
  • 举报
回复
高手,绝对的高手,崇拜中
luokebin110 2010-04-26
  • 打赏
  • 举报
回复
不用那么复杂
@echo off
set DaysAgo=1
set Today=%date:~0,4%%date:~5,2%%date:~8,2%
set /a PassDays=%Today%-1
echo %PassDays%
pause
jeszj 2010-01-21
  • 打赏
  • 举报
回复
ccccccccccccc
开心鹰子 2009-12-28
  • 打赏
  • 举报
回复
真的很厉害,我试过没问题的
huyangg 2009-12-24
  • 打赏
  • 举报
回复
can kao can kao
hm2002519 2009-12-09
  • 打赏
  • 举报
回复
ljc007 厉害,又帮我们解决了一个小问题,哈哈哈!
夜鹰 2009-09-18
  • 打赏
  • 举报
回复
C:\>test
1天的日期是09月17日
请按任意键继续. . .

C:\>

-------------------------
ljc007批处理没问题。
huoyanming 2009-09-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ljc007 的回复:]
test.bat

BatchFile code@echooffrem 计算指定天数之前的日期set DaysAgo=1rem 假设系统日期的格式为yyyy-mm-ddcall:DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDaysset/a PassDays-=%DaysAgo%call:DaysToDate %PassDays% DstYear DstMonth DstDayecho %DaysAgo%天的日期是%DstMonth%月%DstDay%日pausegoto:eof:DateToDays %yy% %mm% %dd% dayssetlocal ENABLEEXTENSIONSset yy=%1&set mm=%2&set dd=%3if1%yy% LSS200if1%yy% LSS170(set yy=20%yy%)else(set yy=19%yy%)set/a dd=100%dd%%%100,mm=100%mm%%%100set/a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2set/a j=j/5+dd+y*365+y/4-y/100+y/400-2472633endlocal&set%4=%j%&goto:EOF:DaysToDate %days% yy mm ddsetlocal ENABLEEXTENSIONSset/a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=aset/a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5set/a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10(if %mm% LSS10set mm=0%mm%)&(if %dd% LSS10set dd=0%dd%)endlocal&set%2=%yy%&set%3=%mm%&set%4=%dd%&goto:EOF
[/Quote]

Cattle between A and C
ljc007 2009-09-17
  • 打赏
  • 举报
回复
test.bat

[code=BatchFile]@echo off
rem 计算指定天数之前的日期
set DaysAgo=1
rem 假设系统日期的格式为yyyy-mm-dd
call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays
set /a PassDays-=%DaysAgo%
call :DaysToDate %PassDays% DstYear DstMonth DstDay
echo %DaysAgo%天的日期是%DstMonth%月%DstDay%日
pause
goto :eof

:DateToDays %yy% %mm% %dd% days
setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF

:DaysToDate %days% yy mm dd
setlocal ENABLEEXTENSIONS
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF
[/code]
百年树人 2009-09-17
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090817/15/68cb96f8-da5b-45cf-bb91-c798a7380a8f.html

参考一下7楼的
pecker 2009-09-17
  • 打赏
  • 举报
回复
无法实现

6,850

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧