打鱼还是晒网
核心部分 计算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;
}