给定一个日期是星期几,让后输入一个这个日期之后的日期,判断日期是星期几。
如:已知2012年1月22日是星期天,输入一个2012年1月22日以后的日期,输出该日期是星期几。
思路:应考虑年份是否为闰年,计算初始日期到指定日期的总天数,然后%7,得出该日期是星期几。
程序如下:
#include <iostream>
#include <string>
using namespace std;
int Month[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31};//将一年中每个月份的天数存入数组中,二月默认为28天。
string weekdays[] = {"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
int main()
{
int sum = 0;
int date, month, year;
cin >> year >> month >> date;
for (int i = 2012; i < year; i++)//判断每一年是否为闰年
{
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
sum += 366;
else
sum += 365;
}
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)//当输入年份为闰年时二月变为29天
Month[2] = 29;
for (int j = 1; j < month; j++)
{
sum += Month[j];//计算月份的天数
}
sum += date;
sum -= 22;//减去初始天数
cout << year << "年" << month << "月" << date << "日是:" << weekdays[sum % 7] << endl;
return 0;
}
运行结果如下: