黑马程序员技术交流社区

标题: 朋友帮改进的代码,看不太明白 [打印本页]

作者: 石少星@    时间: 2015-9-5 23:32
标题: 朋友帮改进的代码,看不太明白
import java.util.Scanner;

public class PrintYear {
        /**
         * 天干字符数组,有着现成的顺序,0-9下标代表甲-癸,使用static修饰是因为静态方法只能引用外部变量
         */
        private static String[] tianGan = { "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛",
                        "壬", "癸" };
        /**
         * 地支字符数组,有着现成的顺序,0-11下标代表子-亥
         */
        private static String[] dizhi = { "子", "丑", "寅", "卯", "辰", "己", "午", "未",
                        "申", "酉", "戌", "亥" };
        /**
         * 据说这是公元后的第一个甲子年
         */
        private static int firstJiaZi = 4;

        public static void main(String[] args) {
                System.out.println("请输入一个年份:");
                int year = new Scanner(System.in).nextInt();
                // 尽量少使用无意义的数字,给你的变量起个易懂的名字哦
                // 可以算任意一年的天干地支,公元前在数字前加-号,例如公元前1年,用-1表示。不过公元前计算是有bug的,留给你思考解决了,哈哈
                System.out.println(year < firstJiaZi ? tianGan[tianGan.length
                                - (firstJiaZi - year) % tianGan.length]
                                + dizhi[dizhi.length - (firstJiaZi - year) % dizhi.length]
                                : tianGan[(year - 4) % tianGan.length]
                                                + dizhi[(year - firstJiaZi) % dizhi.length]);
        }

}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2