题目描述
今天是 2012 年 4 月 12 日星期四,编写程序,输入今天开始到 12 月 31 日之间的任意日期,输出那一天是星期几。
输入格式
共两行,第一行包含一个整数 m,表示询问日期的月份。
第二行包含一个整数 d,表示询问日期的为该月的第几天。
输出格式
输出询问日期是星期几。
注意,要用英文表示。
周一到周日的英文表示如下:
“Monday”,”Tuesday”,”Wednesday”,”Thursday”,”Friday”,”Saturday”,”Sunday”
数据范围
4≤m≤12,
1≤d≤31,
保证日期合法。
样例
输入样例:
5
20
输出样例:
Sunday
C++ 代码
#include<iostream>
using namespace std;
int main()
{
int m,d,day=0; // day记录离4月12日的天数
cin>>m>>d;
// 月份天数
int days[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
for(int i=4;i<=m;i++)
{
if(i==4) // 如果是四月份从13号开始累加天数
{
for(int j=13;j<=days[i];j++)
if(i<m || i==m && j<=d) day++;
// 如果i小于给定月份m 或者 i等于给定月份m并且j小于等于给定天数d
}
else
{
for(int j=1;j<=days[i];j++)
if(i<m || i==m && j<=d) day++;
// 如果i小于给定月份m 或者 i等于给定月份m并且j小于等于给定天数d
}
}
// 星期对应的英文
string week[7]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
cout<<week[(3+day)%7]<<endl;
return 0;
}