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 }