本帖最后由 likeyou32 于 2024-3-12 16:54 编辑
- @echo off
- set "DateA=2024-03-12"
- set "DateB=2024-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
复制代码 第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%根本就没这个表示法,或者就代表百分之一。 |