考研机试真题 Day Of Week

考研机试真题 Day Of Week

#include<cstdio>
#include<cstring>
#include<iostream>
#include<map>
using namespace std;
#include<string>


map<string, int> mm = {
    
     {
    
    "January",1}, {
    
    "February",2}, {
    
    "March",3}, {
    
    "April",4}, {
    
    "May",5}, {
    
    "June",6}, {
    
    "July",7}, {
    
    "August",8}, {
    
    "September",9}, {
    
    "October",10}, {
    
    "November",11}, {
    
    "December",12} };

int mp[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} };

string  ss[7] = {
    
     "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday","Sunday" };

bool isRyear(int year)
{
    
    
	if (!(year % 400) || (year % 100 && !(year % 4)))
		return 1;
	else return 0;
}
int main()
{
    
    
	int year, month, day;
	string tt;


	while (scanf("%d", &day) == 1)
	{
    
    
		cin >> tt;
		month = mm.find(tt)->second;
		scanf("%d", &year);


		int cnt = 0;

		for (int k = 1; k < year; k++)
		{
    
    
			if (isRyear(k))
			{
    
    
				cnt += 366;
			}
			else cnt += 365;
		}

		int p = isRyear(year);

		for (int i = 1; i < month; i++)
			cnt += mp[p][i];
		cnt += day;

		cnt--;
		cout << ss[cnt % 7] << endl;
	}
	return 0;





}

猜你喜欢

转载自blog.csdn.net/weixin_45448563/article/details/114156454