建民の每日打卡3
一、问题描述
某人从1990年一月一日开始“三天打鱼两天晒网”,问某天以后是打鱼还是晒网?
二、设计思路
1.输入日期
2.求1990年一月一日到该日期天数
3.对天数求余,根据余数输出“打鱼”或“晒网”
三、程序流程图
四、代码实现
#include <iostream>
using namespace std;
class Date{
public:
Date(int y,int m,int d){
year=y;
month=m;
day=d;
}
int runyear(){
int k;
for(int i=1990;i<year-1;i++){
if(i%4==0&&i%100!=0||i%400==0){
k++;
}
}
return k;
}
int getmonth(){
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int n;
if(month>2&&(year%4==0&&year%10!=0||year%400==0)){
n++;
}
for(int i=0;i<month;i++){
n+=a[i];
}
return n;
}
int getyear(){
return (year-1990)*365;
}
int getday(){
return day-1;
}
private:
int year,month,day;
};
int main(){
int a,b,c;
cin>>a,b,c;
Date n(a,b,c);
int totalday=n.runyear()+n.getyear()+n.getmonth()+n.getday();
if(totalday%5==1||totalday%5==2||totalday%5==3){
cout<<"打鱼"<<endl;
} else{
cout<<"晒网"<<endl;f
}
}