:find
if exist date.txt (goto Set1) else (goto set2)
:Set1
for /f "tokens=1" %%a in (date.txt) do set d1=%%a
goto compare
:set2
for /f "tokens=1" %%a in ('date/t') do set d1=%%a
goto compare
:compare
for /f "tokens=1" %%a in ('date/t') do set d2=%%a
for %%a in (%d2% %d1%) do call :date2day %%a
goto :eof
:Date2Day
setlocal ENABLEEXTENSIONS
set /a a+=1
for /f "tokens=1-3 delims=/-, " %%a in ('echo/%1') do (
set yy=%%a & set mm=%%b & set dd=%%c
)
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
set n%a%=%j%
endlocal&goto :EOF
其中date.txt里面就是一个日期..不同于现在的日期..我想比较2个日期的差别通过date2day变成数字..然后再变成时间..但是..在倒数第二句..我想set n1=%j%
set n2=%j%..是不是通过call之后set /a a+=1 只运行一次.所以..永远只是n1=%j%
Last edited by bjsh on 2007-7-31 at 12:51 PM ]