世纪年:能整除 100 的年份

普通年:不能整除 100 的年份

闰年:一年有 366 天,二月有 29 天

平年:一年有 365 天,二月有 28 天

对于世纪年:能整除 400 为闰年,否则为平年

对于普通年:能整除 4 为闰年,否则为平年

以下是代码实现:

1、普通两层 if 嵌套语句:

最为接近伪代码的逻辑,简单易懂

 if (year % 100 == 0) {
if (year % 400 == 0) {
System.out.println("世纪年 闰年");
} else {
System.out.println("世纪年 平年");
}
} else{
if (year % 4 == 0) {
System.out.println("普通年 闰年");
} else {
System.out.println("普通年 平年");
}
}

2、IDEA 提示修改后的 if 嵌套 以及 if ... else ... if 语句:

少用了一层嵌套,在不必要嵌套的地方去除嵌套,采用 else ... if 多分支语句

 if (year % 100 == 0) {
if (year % 400 == 0) {
System.out.println("世纪年 闰年");
} else {
System.out.println("世纪年 平年");
}
} else if (year % 4 == 0) {
System.out.println("普通年 闰年");
} else {
System.out.println("普通年 平年");
}

3、使用三目判断运算符精简代码量后的语句:

单条版

 System.out.println(year % 100 == 0 ? (year % 400 == 0 ? "世纪年 闰年" : "世纪年 平年") : (year % 4 == 0 ? "世纪年 闰年" : "世纪年 平年"));

缩进版

 System.out.println(
year % 100 == 0 ?
(year % 400 == 0 ? "世纪年 闰年" : "世纪年 平年") :
(year % 4 == 0 ? "世纪年 闰年" : "世纪年 平年")
);

注明:内语句的  () 不必要,是为了方便理解而加上的

180415_判断闰年的思路及三种 java 实现的更多相关文章

  1. 三种java 去掉字符串中的重复字符函数

    三种java 去掉字符串中的重复字符函数 public static void main(string[] args) { system.out.println(removerepeatedchar( ...

  2. Python判断文件是否存在的三种方法

    通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try ...

  3. Python判断文件是否存在的三种方法【转】

    转:http://www.cnblogs.com/jhao/p/7243043.html 通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先 ...

  4. Python 判断文件是否存在的三种方法

    通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try ...

  5. js如何判断一个对象是不是Array? 三种方法总有一种可以帮上忙

    转载:http://www.nowamagic.net/librarys/veda/detail/1250 在开发中,我们经常需要判断某个对象是否为数组类型,在Js中检测对象类型的常见方法都有哪些呢? ...

  6. 详解三种java实现多线程的方式

    java中实现多线程的方法有两种:继承Thread类和实现runnable接口. 1.继承Thread类,重写父类run()方法 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  7. iOS 判断当前网络状态的三种方法

    http://www.cocoachina.com/ios/20171103/21039.html 在项目中,为了好的用户体验,有些场景必须线判断网络状态,然后才能决定改干嘛.比如视频播放,需要线判断 ...

  8. JQery判断checkbox是否被选三种方式

    方法一:if ($("#checkbox-id").get(0).checked) {    // do something} 方法二:if($('#checkbox-id').i ...

  9. msyql判断记录是否存在的三种方法

    1. select count(*) from .... 这种方法最常见但是效率比较低,因为它需要扫描所有满足条件的记录 2. select 1 from xxxtable where .... 这种 ...

随机推荐

  1. 剑指offer三十三之丑数

    一.题目 如果一个数的因子中,出去1和本身以外,质数因子只包含2.3和5,则把改数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质数因子7. 习惯上我们把1当做是第一个 ...

  2. PHP查找与搜索数组元素

    in_array()函数 in_array()函数在一个数组汇总搜索一个特定值,如果找到这个值返回true,否则返回false.其形式如下: boolean in_array(mixed needle ...

  3. (转)Windows下MySQL :GUI安装和使用(MySQL GUI tools)

    原文:http://blog.csdn.net/dahunbi/article/details/52970815 MySQL GUI Tools是MySQL官方提供的图形化管理工具,功能很强大,值得推 ...

  4. java I/O系统总结

    1. InputStream : 从文件.网络.压缩包等中读取 需要的信息到程序中的变量 read();     read(byte []b ); mark(int readlimit); reset ...

  5. DotNetOpenAuth 使用指南

    这几天一直在研究DotNetOpenAuth,源码处处是坑啊!写此文只为大家更顺利掌握DotNetOpenAuth使用方法,尽量少走弯路. 说明一下:我的环境是Win7 64   VS2015 upd ...

  6. 虚拟网络编辑器的知识和出现的一些问题(没有VMnet0或VMnet8)

    不多说,直接上干货! 安装好的虚拟机,没有VMnet0!!! 解决的办法: 就可以了. 那么,问题现在又来了? 但是,每次都要这样,以右键,管理员身份运行,再关闭之后,以普通双击方式,即又没有VMne ...

  7. Linux-(vmstat,iostat,netstat)

    vmstat命令 vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.CPU活动进行监控.他是对系统的整体情况进行统计,不足之处是无 ...

  8. java.lang.NoSuchMethodError: org.json.JSONArray.iterator()Ljava/util/Iterator 阿里云短信

    请尝试使用 <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk ...

  9. orcle查询记录的每天的第一条

    select * from (      select elec,time,Row_Number() OVER (partition by trunc(TIME) order by time) ran ...

  10. bind9配置转发服务

    修改bind主配置文件 $ vi /etc/named.conf//// named.conf//// Provided by Red Hat bind package to configure th ...