3rd

发布时间 2023-04-14 17:05:27作者: 晨观夕

打鱼还是晒网

核心部分  计算1990年1月1日 到指定某天的有多少天

int year month day

1.首先 输入指定日期 

算出相隔年数

y=year-1990

int DAY

要考虑其中的是否含闰年,并含几个闰年。

for(int i=0;i<=y;i++){

如果 1990+i是闰年

则DAY+=366;

else 

DAY+=365

}

2算出相隔月数

Month[13]={0 ,31,28, 31, 30, 31 ,30,31,31,30,31,30,31}

Month_[13]={0 ,31,29, 31, 30, 31 ,30,31,31,30,31,30,31}

m=month - 1;//差几个月

 for(int j=0;j<m;j++){

如果当前年份不是是闰年

DAY +=Month[i];

else{

DAY+=Month_[i];}

3天数

DAY+= 当前天数-1;

源码:

#include <iostream>
using namespace std;
int date(int year,int yue,int ri);
int main(){
int t1,t2,t3;
cin>>t1>>t2>>t3;
int days=date(t1,t2,t3);
int c=days%5;
if(c==1||c==2||c==3){
cout<<"打鱼";
}
else{
cout<<"晒网";
}

return 0;
}
int date(int year,int yue,int ri){
int DAY=0;
int Year=year-1990;
if(Year!=0){
for(int i=1;i<=Year;i++){
if((1990+i)%400!=0)
DAY+=365;
else
DAY+=366;
}

}
int month[13]={0,31,28,31,30,31,30,31,31,30,30,31};
int month_[13]={0,31,29,31,30,31,30,31,31,30,30,31};
int Month=yue-1;
for(int i=0;i<Month;i++){
if((year%400==0)||((year%100!=0)&&(year%4==0))){
DAY+=month_[i];
}
else
DAY+=month[i];
}
int day=ri-1;
DAY+=day;
return DAY;
}