import java.util.Scanner;

 /**
* @author Shelwin Wei
* 分析过程请参照《闰平年简介及计算过程描述》,网址 http://www.cnblogs.com/shelwin/p/4923480.html
*/
public class LeapAndCommonYear { /**
* @param args
* 使用Java语言编写的应用程序必须包含一个main()方法,修饰符public和static的顺序可以互换,但是依照Java惯例把public放在前面,参数名args不是
* 固定的,开发者可以任意命名,但是习惯上使用args或argv。
* main()方法是应用程序的入口,一个程序执行时会首先指定类的main()方法,再启动程序所需要的其他资源。main()方法接收一个字符串数据参数,实际上
* 该参数提供了运行时系统向应用程序提供参数的途径。当然也可以不传递任何参数 —— 在实际开发中,该参数很少会使用到。
*/
static public void main(String[] args) { /* 关于Scanner类的介绍请参考网址
* http://bbs.itheima.com/thread-90856-1-1.html
*/
Scanner scan = new Scanner(System.in);
String input;
int year; while(true) {
System.out.print("请输入年份(0表示退出):");
try {
input = scan.nextLine();
year = Integer.parseInt(input); //类型转换,关于该方法的介绍请参考http://book.2cto.com/201308/31300.html
if (year == 0) {
//凡是属于IO流(I-input, O-output, IO流-输入流输出流)的类如果不关闭会一直占用资源,
//要养成好习惯用完就关掉,就好像你接水完了要关水龙头一样。
scan.close();
break; //退出while循环
}
else if (year < 0){
System.out.println("程序仅支持公元元年之后的年份,请重新输入...");
continue; //结束当前循环:不再执行while循环内下面的语句,从while循环开始处重新执行
} else {
//调用自定义函数CheckLeapYear,并传入实际参数(实参,注意与形参的区别)year,根据返回结果输出闰平年信息
if (CheckLeapYear(year) == true) {
System.out.println("公元" + year + "年是闰年");
} else {
System.out.println("公元" + year + "年是平年");
}
}
}
//catch捕获try{}程序块中的异常信息,此处主要用来监控类型转换语句 year = Integer.parseInt(input),如果类型转换失败,表示用户输入无效
catch (Exception e) {
String error = "你此次输入无效,错误信息【" + e.getMessage() + "】";
System.out.println(error);
}
} System.out.print("程序成功退出!");
} /**
* @param year: 形式参数(形参),可以任意命名,如 nian、year1等,但要让别人看着容易懂
* 如果year是闰年,则返回true;否则返回false
*/
public static boolean CheckLeapYear(int year) {
if (year % 4 != 0)
return false;
else if (year % 100 != 0)
return true;
else if (year % 400 != 0)
return false;
else if (year % 3200 != 0)
return true;
else if (year % 86400 != 0)
return false;
else
return true;
} }

闰平年简介及计算过程描述 - Java代码实现的更多相关文章

  1. Pandas统计计算和描述

    Pandas统计计算和描述 示例代码: import numpy as np import pandas as pd df_obj = pd.DataFrame(np.random.randn(5,4 ...

  2. Java代码计算运行时间

    突然想准确的测试一下Java代码的执行时间,在网上找了一会.发现基本有以下两种方法:第一种是以毫秒为单位计算的. Java代码 //伪代码 long startTime=System.currentT ...

  3. 详细分析栈和队列的数据结构的实现过程(Java 实现)

    目录 栈和队列的数据结构的实现过程(Java 实现) 栈的数据结构的实现 栈的基础知识回顾 栈的常见应用 基于数组的栈的实现 具体代码设计 基于数组的栈简单的时间复杂度分析 关于栈的一个算法应用:括号 ...

  4. 160826、浏览器渲染页面过程描述,DOM编程技巧以及重排和重绘

    一.浏览器渲染页过程描述   1.浏览器解析html源码,然后创建一个DOM树. 在DOM树中,每一个HTML标签都有一个对应的节点(元素节点),并且每一个文本也都有一个对应的节点(文本节点). DO ...

  5. 浏览器渲染页面过程描述,DOM编程技巧以及重排和重绘。

    一.浏览器渲染页过程描述 1.浏览器解析html源码,然后创建一个DOM树. 在DOM树中,每一个HTML标签都有一个对应的节点(元素节点),并且每一个文本也都有一个对应的节点(文本节点). DOM树 ...

  6. java代码的编译、执行过程

    Java代码编译是由Java源码编译器来完成,流程图如下所示: Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制: Java源码 ...

  7. 机器翻译评价指标之BLEU详细计算过程

    原文连接 https://blog.csdn.net/guolindonggld/article/details/56966200 1. 简介 BLEU(Bilingual Evaluation Un ...

  8. CFD计算过程发散诸多原因分析【转载】

    转载自: http://blog.sina.com.cn/s/blog_5fdfa7e601010rkx.html 今天探讨引起CFD计算过程中发散的一些原因.cfd计算是将描述物理问题的偏微分方程转 ...

  9. PAT(B) 1063 计算谱半径(Java)

    题目链接:1063 计算谱半径 (20 point(s)) 题目描述 在数学中,矩阵的"谱半径"是指其特征值的模集合的上确界.换言之,对于给定的 n 个复数空间的特征值 { a​1 ...

随机推荐

  1. Methods for Using Message Queuing Telemetry Transport for Sensor Networks to Support Sleeping Devices

    Methods support a sleep mode for an embedded device. Embedded devices like sensors and actuators use ...

  2. git commit 报错 There was a problem with the editor 'vi'

    今天提交代码git  commit -a的时候出现了这个错误 上网查了一下,说是Vim的返回值出错了,出错的原因还在翻译英文, 先贴出解决方案吧 git config --global core.ed ...

  3. Android于popWindow写弹出菜单

    1.什么是popWindow? popWindow这是对话的方式!文字解说android的方式来使用对话框,这就是所谓的popWindow. 2.popWindow特征 Android的对话框有两种: ...

  4. QList介绍(QList比QVector更快,这是由它们在内存中的存储方式决定的。QStringList是在QList的基础上针对字符串提供额外的函数。at()操作比操作符[]更快,因为它不需要深度复制)非常实用

    FROM:http://apps.hi.baidu.com/share/detail/33517814 今天做项目时,需要用到QList来存储一组点.为此,我对QList类的说明进行了如下翻译. QL ...

  5. 使用XCA(X Certificate and key management)可视化项目经理SSL 凭证(4)--凭借自身的凭证管理中心的定义(Certificate Authority)签名证书申请

    随着XCA(X Certificate and key management)可视化项目经理SSL 证书系列文章(2)和(3)中.我们学习了怎样用XCA(X Certificate and key m ...

  6. WPF 3D 获取鼠标在场景的3d坐标

    原文:WPF 3D 获取鼠标在场景的3d坐标 上一篇中我们谈到了WPF 3d做图的一些简单原理,这里我们简单介绍一下怎样获得鼠标在场景中的3d坐标,知道了3d坐标就可以进行很多操作了: 首先介绍一下3 ...

  7. 运行该脚本出现/bin/sh^M: bad interpreter: No such file or directory

    错误中脚本文件的一个非常可能的原因是DOS格的, 即每一行的行尾以\r\n来标识, 其ASCII码各自是0x0D, 0x0A.  能够有非常多种办法看这个文件是DOS格式的还是UNIX格式的, 还是M ...

  8. PD生成兼容Oracle、Mysql脚本

    mysql date  改为  datetime ->运行sql脚本 Oracle " clustered " 替换为空,即key(XX) ->运行sql脚本

  9. LeapMotion Demo2

    原文:LeapMotion Demo2    官方doc有四个手势,最近尝试实现对握拳的识别,并能在我的程序界面上体现出来.    调试过程较为繁琐,幸好最终效果还差强人意! 首先看看我的效果图:   ...

  10. AR研究-Demo集

    原文:AR研究-Demo集        之前研究了图像处理.图像识别及AR 等相关技术,下载了很多开源源码进行学习和尝试引用,包括c++.c#.Opengl.Emgu. Aforge.OpenCV. ...