
一段計算日期間隔的批處理代碼死活看不懂最后由 likeyou32 于 -3-12 16:54
- @echo off
- set DateA=-03-12
- set DateB=-02-28
- call :DateToDays %DateA:~0,4% %DateA:~5,2% %DateA:~8,2% DaysX
- call :DateToDays %DateB:~0,4% %DateB:~5,2% %DateB:~8,2% DaysY
- set /a DayZ=DaysX-DaysY
- echo %DateA%和%DateB%間隔的天數是:%DayZ%
- 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
nclick="copycode($('code0'));">復制代碼
第12行:set yy=%1&set mm=%2&set dd=%3把變量yy設為1%,1%為第4行或第5行的第一個參數取值,后邊的mm dd以此類推,,第13行的1%yy%是什么東西? 1%還是代表前邊第4行的%DateA:~0,4%,可yy%又是什么東西呢 ? 按說應該兩個百分號%yy%才對啊,前邊12行yy已經等于1%了,實在不清楚1%yy% 表示啥意思了 ?
上邊是原貼,%1、%4這才代表call后的參數,1%根本就沒這個表示法,或者就代表百分之一。