- set /a leap="^!(sy %% 4) & ^!(^!(sy %% 100)) | ^!(sy %% 400)"
复制代码 总算看懂了这段代码的一部分,现根据这段代码得出计算闰年的方法如下:
不管能否被4和100整除,只要能被400整除的就是闰年。
若不能被400整除,但能被4整除,且不能被100整除的也是闰年。
=================================================================
但仍然不懂代码中的 & 和 | 符号是干什么的?
上面代码中的三个取余部分,
1、能被4整除,结果为:1
2、能被100整除,结果为:0
3、能被400整除,结果为:1
将上面的代码分解如下:
:- @echo off
- set /a leap="(0&0|1)"
- echo %leap%
- set /a leap="(0&1|1)"
- echo %leap%
- set /a leap="(1&0|1)"
- echo %leap%
- set /a leap="(1&1|1)"
- echo %leap%
- echo\&echo 不管能否被4和100整除,只要能被400整除的就是闰年。
- echo.
- set /a leap="(1&1|0)"
- echo %leap%
- echo\&echo 若不能被400整除,但能被4整除,且不能被100整除的也是闰年。
- echo.
- set /a leap="(0&0|0)"
- echo %leap%
- set /a leap="(0&1|0)"
- echo %leap%
- set /a leap="(1&0|0)"
- echo %leap%
- echo\&echo 剩下的就是平年。
- echo\&pause
复制代码
|