Java:判断闰年

俗话说:四年一闰,百年不闰,四百年再闰。
其实后面还有:3200年不闰,172800年再闰。
 

直接代码

 1 public class RexDate {
 2 
 3     /**
 4      * 判断年份是否为闰年
 5      *
 6      * @param year 年份
 7      * @return
 8      */
 9     public boolean isLeapYear(int year) {
10 
11         boolean is = false;
12 
13         if (year % 4 == 0) {
14             is = true;
15         }
16 
17         if (year % 100 == 0) {
18             is = false;
19         }
20 
21         if (year % 400 == 0) {
22             is = true;
23         }
24 
25         if (year % 3200 == 0) {
26             is = false;
27         }
28 
29         if (year % 172800 == 0) {
30             is = true;
31         }
32 
33         return is;
34     }
35 
36 }

 

优化代码

利用逻辑运算符的短路逻辑提升运算效率

 1 public class RexDate {
 2 
 3     /**
 4      * 判断年份是否为闰年
 5      *
 6      * @param year 年份
 7      * @return
 8      */
 9     public boolean isLeapYear(int year) {
10 
11         boolean is = false;
12 
13         if (year % 172800 == 0 || (year % 3200 != 0 && year % 400 == 0) || (year % 100 != 0 && year % 4 == 0)) {
14             is = true;
15         }
16 
17         return is;
18     }
19 
20 }

 

posted @ 2022-02-15 19:15  RexChou  阅读(465)  评论(0)    收藏  举报