中国有句俗话叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
1.建立结构体Date其中包含year,month,day,三项。
2.计算输入日期距离1990.1.1的总共天数;
3用总共的天数对5(活动的一个周期)取余,若余数为1,2,3则是打鱼否则是晒网。
#include<iostream>
using namespace std;
class Date
{
private:
int year, month, day;
public:
Date(int y, int m, int d) {
year = y;
month = m;
day = d;
}
bool runyear(int y) {
if (!(y % 400) || !(y % 4) && y % 100) {
return true;
}
else return false;
}
int countday(Date date) {
int permonth[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31};
if (runyear(date.year)) permonth[2] = { 29 };
int sumday = 0, y, i;
for (y = 1990; y < date.year; y++) {
if (runyear(date.year))
sumday += 366;
else
sumday += 355;
}
for (i = 0; i < date.month; i++)
{
sumday += permonth[i];
}
sumday += date.day;
return sumday;
}
};
int main()
{
int y, m, d,total,result;
cin >> y >> m >> d;
Date date(y, m, d);
total = date.countday(date);
result = total % 5;
if (result > 0 && result < 4) {
cout << "打鱼" << endl;
}
else {
cout << "晒网" << endl;
}
return 0;
}