闰平年简介及计算过程描述 - Java代码实现

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

 

posted @ 2015-11-02 10:06  Shelwin的世界  阅读(426)  评论(0编辑  收藏  举报