【poj1008】Maya Calendar

模拟,先算出天数,再转化成另一个历。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char name[21][10] = {"0","imix","ik","akbal","kan","chicchan","cimi","manik","lamat","muluk","ok","chuen","eb","ben","ix","mem","cib","caban","eznab","canac","ahau"};
int getmonth(char *a)
{
    int ASCII = 0,l = strlen(a);
    for (int i=0;i<l;i++)
        ASCII += a[i];
    switch(ASCII)
    {
        case 335:return 1;
        case 221:return 2;
        case 339:return 3;
        case 471:return 4;
        case 438:return 5;
        case 345:return 6;
        case 674:return 7;
        case 328:return 8;
        case 414:return 9;
        case 338:return 10;
        case 318:return 11;
        case 304:return 12;
        case 305:return 13;
        case 636:return 14;
        case 433:return 15;
        case 329:return 16;
        case 534:return 17;
        case 546:return 18;
        case 552:return 19;
    }
}
int getday(int day,int month,int year)
{
    int sumday = 0;
    for (int i=0;i<year;i++)
        sumday += 365;
    for (int i=1;i<month;i++)
        sumday += 20;
    return sumday+day;
}
int main()
{
    int T,day,year,sumday = 0;
    char month[10];
    char doc;
    cin>>T;
    cout<<T<<endl;
    while (T--)
    {
        cin>>day>>doc>>month>>year;
        sumday = getday(day,getmonth(month),year);
        cout<<sumday%13+1<<' '<<name[sumday%20+1]<<' '<<sumday/260<<endl;
    }
}

 

posted @ 2016-06-19 21:24  mengyue  阅读(226)  评论(0编辑  收藏  举报