|
本帖最后由 likeyouli 于 2024-3-12 16:11 编辑
- @echo off
- set /p "DateA=请输入日期,注意使用yyyymmdd格式:"
- set /p "DateB=请输入日期,注意使用yyyymmdd格式:"
- call :DateToDays %DateA:~0,4% %DateA:~4,2% %DateA:~6,2% DaysX
- call :DateToDays %DateB:~0,4% %DateB:~4,2% %DateB:~6,2% DaysY
- if %DaysX% geq %DaysY% (set /a DayZ=DaysX-DaysY) else (set /a DayZ=DaysY-DaysX)
- 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
复制代码 东拼西凑了一段代码,后边的几行实在看不懂了,有懂的大神能否解释一下:
set /a dd=100%dd%%%100,mm=100%mm%%%100 这句是什么意思呢 ?尤其100%dd%%%100,%dd%是变量,代表前边第3个参数,即日期的最后两位,紧跟着又加了两个百分号是啥意思呢 ?
还有set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2 这句是啥意思呢?中间有什么逻辑呢 ?z/代表啥 ?
还有 set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633 这句,,最后这几句一直没弄懂啥计算逻辑 ,,
|
评分
-
查看全部评分
|