#include<iostream>
#include<string>
using namespace std;
int main()
{
string cale1[] = {"pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen", "yax", "zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu", "uayet"};
string cale2[] = {"imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau"};
int m=0,n=0;
int year;
int day;
char s;
string mon;
int size;
cin>>size;
int num[size];
for(int i=0;i<size;i++)
{
cin>>day>>s>>mon>>year;
for(m=0;m<19;m++)
{
if(mon==cale1[m])
num[i]=day+m*20+365*year;
}
}
cout<<size<<endl;
for(int j=0;j<size;j++)
{
year=num[j]/260;
n=num[j]%20;
day=num[j]%13+1;
cout<<day<<" "<<cale2[n]<<" "<<year<<endl;
}
return 0;
}
明白如何转换即可。先把前一种日期总日子数算出来再计算转为第二种。