#include <stdio.h> #include <string.h> //闰年返回1 int IsLeapYear(int year){ return (year%400 == 0 || (year%100 != 0 && year%4 == 0)); } int main() { int day, year; char mon[14]; char month[13][14] = {"","January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; char week[7][14]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; int mon_day[2][13] = {{0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31}}; while (scanf("%d %s %d", &day, mon, &year) != EOF) { int _day = 0; //获取给定年份日期相对于1年1月1日过去了天 for (int i = 1; i < year; ++i) { _day += 365 + IsLeapYear(i); } int j = 0; //再加上 给定年份的月所对应前面的天数 while (strcmp(mon, month[j]) != 0) { _day += mon_day[IsLeapYear(year)][j++]; } //最后再加上天数 _day += day; int w = _day%7; printf("%s\n",week[w]); } return 0; }