三天打鱼两天晒网

中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言/java/python实现程序解决问题。

#include<stdio.h>
typedef struct time
{
 int year;
 int month;
 int day;
} date;

 

void judgefish(date today)

 int i,totalday,flag,j;
 int days_year=0,days_day=0;//days_year为到指定日期的前一年年底的天数。
        //days_day为指定年开始到指定月份日期
 int tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
 {0,31,29,31,30,31,30,31,31,30,31,30,31}};
 for(i=2010;i<=today.year-1;i++)
 {
  if((i%4==0&&i%100!=0 )|| (i%400==0))
   days_year+=366;
  else
   days_year+=365;
 }
  flag=(today.year%4==0 && today.year%100!=0 )|| (today.year%400==0);
 //flag=1 表示当前为闰年,二月就是28,否则二月为29.
 for(j=1;j<today.month;j++)
 { 
  days_day=days_day+tab[flag][j];
 }
 totalday=days_year+days_day+today.day;//总共的天数
 printf("这是第%d天\n",totalday);
 if((totalday%5>0 ) && (totalday%5<4))
  printf("这天在打渔\n");
 else  printf("这天在晒网\n");

 

}
void main()

 date today;
    while(1)
 {
  printf("请输入您要查询的日期格式参考2010-01-01");
  scanf("%d-%d-%d",&today.year,&today.month,&today.day);
 while(today.year<2010)
    {
        printf("年份输入过小,请重新输入:\n");
        scanf("%d-%d-%d",&today.year,&today.month,&today.day);
    }
 
  judgefish(today);
 }
}

三天打鱼两天晒网