- ::判断当前日期的前一天
- ::首先直接把天数减1天
- ::如果出来的是0天就把月减1天,天数是当月的最后一天。
- ::如果出来的是0月就把年减1年,月数是当年的最后一月。
- @echo off&setlocal enabledelayedexpansion
- set yyyy=%date:~0,4%
- set mm=%date:~5,2%
- set dd=%date:~8,2%
- set /a nd=!dd!-1
- ::如果象3月1日减一天是0天就...
- if !nd!==0 call :dd0
- if !mm!==0 call :mm0
- set yyyymmdd=!yyyy!-!mm!-!nd!
- echo 今天是:%date:~0,10%
- echo 昨天是:!yyyymmdd!
- pause
- :dd0
- set /a mm=!mm!-1
- for %%a in (1 3 5 7 8 10 12)do set %%add=31
- set /a pddd=!yyyy!*10/4
- set pd2d=!pddd:~-1,1!
- set 2dd=28
- if !pd2d!==0 set 2dd=29
- for %%b in (4 6 9 11)do set %%bdd=30
- set nd=!%mm%dd!
- goto :eof
- :mm0
- set /a yyyy=!yyyy!-1
- set mm=12
- set nd=31
- goto :eof
复制代码 这是网上的一个程序,是用来计算日期的,比如当前日期是2010-11-02日,它得出的前一天是2010-11-1日,如何使用它得到的前一天为2010-11-01日呢?
其实想借这段程序来计算日期,并为服务器每天定时自动备份mysql数据库,并自动删除指定天数前的备份目录,创建的日期是yyyymmdd格式,但计算的日期却是yyyymmd,这样就导致了小于10以下的日期无法自动删除
请求帮助。
[ 本帖最后由 xiaoyuwxz 于 2010-12-2 16:09 编辑 ] |