解题代码:
import java.util.HashMap;
import java.util.Scanner;
public class Main {
static String[] numTzolkin = new String[] {"imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau"};
static HashMap<String, Integer> monHaab = new HashMap<String, Integer>();
/*
* pop, no, zip, zotz, tzec, xul, yoxkin, mol, chen,
* yax, zac, ceh, mac, kankin, muan, pax, koyab, cumhu, uayet
*/
static {
monHaab.put("pop", 0);
monHaab.put("no", 1);
monHaab.put("zip", 2);
monHaab.put("zotz", 3);
monHaab.put("tzec", 4);
monHaab.put("xul", 5);
monHaab.put("yoxkin", 6);
monHaab.put("mol", 7);
monHaab.put("chen", 8);
monHaab.put("yax", 9);
monHaab.put("zac", 10);
monHaab.put("ceh", 11);
monHaab.put("mac", 12);
monHaab.put("kankin", 13);
monHaab.put("muan", 14);
monHaab.put("pax", 15);
monHaab.put("koyab", 16);
monHaab.put("cumhu", 17);
monHaab.put("uayet", 18);
}
public static void main(String[] args) {
Scanner stdin = new Scanner(System.in);
int num = stdin.nextInt();
System.out.println(num);
int hDay;
String hMonth, dayTemp;
int hYear;
int daySum;
for (int i = 0; i < num; i++) {
dayTemp = stdin.next();
hDay = Integer.parseInt(dayTemp.substring(0, dayTemp.length()-1));
hMonth = stdin.next();
hYear = stdin.nextInt();
daySum = getSumDay(hDay, hMonth, hYear);
outTzolkin(daySum);
}
}
private static void outTzolkin(int daySum) {
int tYear = daySum/260;
int tNum = (daySum+1)%13;
int tDay = daySum%20;
System.out.println((tNum == 0 ? 13:tNum) + " " + numTzolkin[tDay] + " " + tYear);
}
private static int getSumDay(int hDay, String hMonth, int hYear) {
return hDay + monHaab.get(hMonth)*20 + hYear*365;
}
}