判断日期是星期几

给定一个日期是星期几,让后输入一个这个日期之后的日期,判断日期是星期几。

如:已知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;
}

运行结果如下:




猜你喜欢

转载自blog.csdn.net/kksc1099054857/article/details/77850190