poj1008 Maya Calendar

玛雅历的换算:先计算出天数,然后换算成Tzolkin表示法,注意haab表示第19个月时只有0-4,还有注意单词表拼错了,我拼错了白WA了。

#include<stdio.h>
#include<string.h>

typedef struct h{
    int h_year;
    int h_day;
    char h_month[10];
}Haab;

typedef struct t{
    int t_year;
    int t_month;
    char t_day[10];
}Tzolkin;


    const char haab_map[20][10]={"pop","no","zip","zotz","tzec","xul","yoxkin","mol","chen","yax","zac","ceh","mac","kankin","muan","pax","koyab","cumhu","uayet"};
    const char tzolkin_map[21][10]={"imix","ik","akbal","kan","chicchan","cimi","manik","lamat","muluk","ok","chuen","eb","ben","ix","mem","cib","caban","eznab","canac","ahau"};


int getTotalDay(int day,char * month,int year){
    int sum=0;
    int i;
    sum=year*365+day;
    for(i=0;i<19;i++){
        if(strcmp(month,haab_map[i])==0){
            sum+=20*i;
            break;
        }
    }
    return sum;   
}

void main(){
    int number,i=0,total_day;
    scanf("%d",&number);
    printf("%d\n",number);
    Haab h_date;
    Tzolkin t_date;
    while(i<number){
        scanf("%d. %s %d",&h_date.h_day,h_date.h_month,&h_date.h_year);
        total_day=getTotalDay(h_date.h_day,h_date.h_month,h_date.h_year);
        t_date.t_year = total_day/260;
        t_date.t_month = (total_day%260)%13+1;
        strcpy(t_date.t_day,tzolkin_map[(total_day%260)%20]);
        printf("%d %s %d\n",t_date.t_month,t_date.t_day,t_date.t_year);
        i++;        
    } 


}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值