重点在于求出1990年1月1日到当天的天数,要考虑闰年的情况,可以定义一个函数,实现这个功能,然后在主函数实现交互。
具体代码如下:
#include
#include
int Day(int y,int m,int d);
main()
{
int y,m,d; //储存输入的年月入
int days; //储存总天数
int flag; //判断是打鱼还是晒网
scanf("%4d-%2d-%2d",&y,&m,&d);
days=Day(y,m,d);
flag=days%5;
if(days==-1)
printf("Invalid input" );
else if(flag==1 || flag==2 || flag==3)
printf("He is working");
else if(flag==4 || flag==0)
printf("He is having a rest");
system("pause");
}
//函数功能:输入年月日,输出1990-1-1到该天的天数,-1位输入不合法
int Day(int y,int m,int d)
{
int i;
int r=0; //储存1990到该天的闰年个数
int a[]={31,28,31,30,31,30,31,31,30,31,30}; //m给每出月的天数
if(y>=1990 && m>0 && m<13 && d>0 && d<32)
{
for(i=1990;i<=y;i++)//计算闰年的个数
{
if(i%400==0||i%100!=0&&i%4==0)
r++;
}
for(i=0;i{
d+=a[i];
}
if((y%400==0||y%100!=0&&y%4==0)&&m<3)//如果当年是闰年但不到二月就不能算进去
r--;
return 365*(y-1990)+r+d;
}
else
return -1;
}