Day3.java
import java.util.Calendar; import java.util.Scanner; public class Days3 { /** * 公元纪年法向天干地支纪年法换算 * 计算方法: * 公元年数-3,除以10余数可得天干; * 公元年数-3,除以12余数可得地支; * * @author ruan_luqingnian * @version 1.0.0 */ public static void main(String[] args) { /** 十天干:1-甲(jiǎ)、2-乙(yǐ)、3-丙(bǐng)、4-丁(dīng)、5-戊(wù)、6-己(jǐ)、7-庚(gēng)、8-辛(xīn)、9-壬(rén)、0-癸(guǐ); 十二地支:1-子(zǐ)、2-丑(chǒu)、3-寅(yín)、4-卯(mǎo)、5-辰(chén)、6-巳(sì)、7-午(wǔ)、8-未(wèi)、9-申(shēn)、10-酉(yǒu)、11-戌(xū)、0-亥(hài); */ Calendar cal = Calendar.getInstance(); int cYear = cal.get(Calendar.YEAR); int j = cYear - 3; int cSky = j % 10; int cGround = j % 12; String cS = sky(cSky); String[] arrC = ground(cGround); System.out.println("\033[35;4m" + "今年是" + cS + arrC[0] + arrC[1] + "年" + "\033[0m"); Scanner sc = new Scanner(System.in); System.out.print("input year : "); while (true) { int year = sc.nextInt(); int i = year - 3; int sky = i % 10; int ground = i % 12; String s = sky(sky); String[] arr = ground(ground); if (year == 0) { break; } System.out.println("\033[34;4m" + s + arr[0] + "年属" + arr[1] + "\033[0m"); } } private static String[] ground(int ground) { String g = ""; String a = ""; String[] str = new String[2]; switch (ground) { case 1: g = "子"; a = "鼠"; str = new String[]{g, a}; break; case 2: g = "丑"; a = "牛"; str = new String[]{g, a}; break; case 3: g = "寅"; a = "虎"; str = new String[]{g, a}; break; case 4: g = "卯"; a = "兔"; str = new String[]{g, a}; break; case 5: g = "辰"; a = "龙"; str = new String[]{g, a}; break; case 6: g = "巳"; a = "蛇"; str = new String[]{g, a}; break; case 7: g = "午"; a = "马"; str = new String[]{g, a}; break; case 8: g = "未"; a = "羊"; str = new String[]{g, a}; break; case 9: g = "申"; a = "猴"; str = new String[]{g, a}; break; case 10: g = "酉"; a = "鸡"; str = new String[]{g, a}; break; case 11: g = "戌"; a = "狗"; str = new String[]{g, a}; break; case 0: g = "亥"; a = "猪"; str = new String[]{g, a}; break; default: break; } return str; } private static String sky(int sky) { String s = ""; switch (sky) { case 1: s = "甲"; break; case 2: s = "乙"; break; case 3: s = "丙"; break; case 4: s = "丁"; break; case 5: s = "戊"; break; case 6: s = "己"; break; case 7: s = "庚"; break; case 8: s = "辛"; break; case 9: s = "壬"; break; case 0: s = "癸"; break; default: break; } return s; } }