批处理计算日期的方法
用获取到的年、月、日,进行计算
@echo off
set /a y=%date:~0,4%,m=%date:~5,2%,d=%date:~8,2%
set /a m1=31,m2=28,m3=31,m4=30,m5=31,m6=30,m7=31,m8=31,m9=30,m10=31,m11=30,m12=31
set /a "yp=!(y%%4)&!(!(y%%100))|!(y%%400)"
if %yp% equ 1 set /a m2=29
setlocal enabledelayedexpansion
set/a od=%d%-7
if %od% lss 1 (set /a om=%m%-1
if !om! equ 0 (set om=12& set /a y=%y%-1)
for /f "tokens=1,2 delims==" %%i in ('set m^|findstr "m!om!"') do set /a od=%%j%od%
) else set om=%m%
if %od% lss 10 set od=0%od%&if %om% lss 10 set om=0%m%
echo 7天前的日期是:%y%!om!%od%
pause>nul
问题:
- 只支持一个月以内的日期计算。