A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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]);
        }

}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马