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