闰平年简介及计算过程描述 - Java代码实现
2024-09-01 01:00:18
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;
} }
最新文章
- 以空白符结尾的 alias
- selenium问题记录
- 64位系统里的IIS运行32位ODP.NET的方法
- JSOUP选择器语法说明
- sizeof()用法汇总
- Hadoop运维操作
- 1050 棋盘染色 2 - Wikioi
- 2010 A B 2011 A B
- js转换ascii编码如中文友转换为编码友;可防止乱码
- JavaScript声音播放
- Azure按订阅,资源组,资源类型导出所有资源powershell命令
- Bugku-CTF之过狗一句话(送给大家一个过狗一句话)
- Anatomy of a Database System学习笔记 - 概论、并发控制
- C语言定义的操作mysql数据库的接口
- myeclipise生成javadoc
- 使用socket.io client 开发时兼容IE低版本的办法
- Java方法通过RestTemplate调用restful接口
- B1004. 成绩排名
- 解决Android LogCat 输出乱码的问题(转)
- Xilinx SD controller
热门文章
- FileReader的编码问题
- matlab 神经网络工具箱的实用
- WPF中的可视化对象(Visual)
- WPF-3D动效-文字球形环绕
- GoldenGate过程 abend,报错OGG-00868 ORA-02396: Exceeded Maximum Idle Time, Please Connect Again
- 好用的Markdown 编辑器及工具
- Asp UserInfoList 方法二
- C++ Boost库简介(一些自己的感受)
- main()如果返回0,则代表程序正常退出,返回非零代表程序异常退出。
- 虚拟机安装的kali无法识别本机物联网卡