1. 求解星期。已知2021年11月14日为星期天,输入之前的任意一个年份的时间,
求解是星期几。
说明:输入是三个整数,第一个表示年份,第二个表示月份,第三个表示
日期,比如2020年11月5日为2020 11 5,之间以空格隔开;输入是对应英文单词,
是星期4,为Thursday,首字母大写,其余小写。提示,星期一到星期天对应
英文是Monday, Tuesday, Wendnesday, Thursday,Friday, Saturday和Sunday。
输入示例1:
2020 11 5
输出示例1:
Thursday
输入示例2:
2021 6 2
输出示例2:
Wendnesday
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
const char* str[8] = { "Monday" ,"Tuesday", "Wendnesday", "Thursday","Friday","Saturday","Sunday" };
int arr[13] = { 0,31 , 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int main()
{
int year = 0;
int month = 0;
int date = 0;
scanf("%d %d %d", &year, &month, &date);
int count = 0;
int yd = 365;
int sum = 0;
if (year == 2021)
{
if (month == 11)
{
count = 14 - date;
}
else
{
for (int i = month; i < 11; i++)
{
count += arr[i];
}
count -= date;
count += 14;
}
}
else
{
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
arr[2]++;
yd = 366;
}
for (int i = 1; i < month; i++)
{
sum += arr[i];
}
sum += date;
count = yd - sum;
year++;
while (year < 2021)
{
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
count += 366;
}
else
{
count += 365;
}
year++;
}
count += 318;
}
printf("%s", str[6 - count % 7]);
return 0;
}