/**************三天打鱼,两天晒网***********/
/*
主要功能:某人从2010年的1月1日起,开始“三天打鱼,两天晒网”,输入一个日期,判断某人是在打鱼,还是在晒网
*/
#include<stdio.h>
int main()
{
int year,month,day,totaldays,i; //totaldays表示查询日期距2010年1月1日的总天数
int leap=0; //初始化闰年个数为0
int sum=0;
printf("input year,month,day:\n");
scanf("%d,%d,%d",&year,&month,&day); //输入要查询的年月日
while(year<2010||day<0&&day>31) //判断输入的日期是否正确
{
printf("data error,try again:\n");
scanf("%d,%d,%d",&year,&month,&day);
}
for(i=2010;i<year;i++) //计算从2010年到查询年份前一年的闰年个数
{
if(i%400==0||i%4==0&&i%100!=0)
leap+=1;
}
switch(month) //计算该年查询月份之前的总天数,2月按28天计算
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("month error:\n");break;
}
if(((year%4==0&&year%100!=0)||year%400==0)&&month>2) //如果查询的年份是闰年并且月份大于2月
{
totaldays=(year-2010)*365+sum+day+leap+1; //总天数为年份差乘365加sum加leap加该年二月多余的一天
printf("totaldays=%d\n",totaldays);
}
else
{
totaldays=(year-2010)*365+sum+day+leap; //该年为平年二月按28天计算,或者月份为1月,不必再加1
printf("totaldays=%d\n",totaldays);
}
if((totaldays%5)>0&&(totaldays%5)<=3) //总天数对5取余,如果为0,4则晒网,如果为1,2,3则打鱼
printf("\nhe is fishing today\n");
else
printf("\nhe is sleeping today\n");
return 0;
}
/*
主要功能:某人从2010年的1月1日起,开始“三天打鱼,两天晒网”,输入一个日期,判断某人是在打鱼,还是在晒网
*/
#include<stdio.h>
int main()
{
int year,month,day,totaldays,i; //totaldays表示查询日期距2010年1月1日的总天数
int leap=0; //初始化闰年个数为0
int sum=0;
printf("input year,month,day:\n");
scanf("%d,%d,%d",&year,&month,&day); //输入要查询的年月日
while(year<2010||day<0&&day>31) //判断输入的日期是否正确
{
printf("data error,try again:\n");
scanf("%d,%d,%d",&year,&month,&day);
}
for(i=2010;i<year;i++) //计算从2010年到查询年份前一年的闰年个数
{
if(i%400==0||i%4==0&&i%100!=0)
leap+=1;
}
switch(month) //计算该年查询月份之前的总天数,2月按28天计算
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("month error:\n");break;
}
if(((year%4==0&&year%100!=0)||year%400==0)&&month>2) //如果查询的年份是闰年并且月份大于2月
{
totaldays=(year-2010)*365+sum+day+leap+1; //总天数为年份差乘365加sum加leap加该年二月多余的一天
printf("totaldays=%d\n",totaldays);
}
else
{
totaldays=(year-2010)*365+sum+day+leap; //该年为平年二月按28天计算,或者月份为1月,不必再加1
printf("totaldays=%d\n",totaldays);
}
if((totaldays%5)>0&&(totaldays%5)<=3) //总天数对5取余,如果为0,4则晒网,如果为1,2,3则打鱼
printf("\nhe is fishing today\n");
else
printf("\nhe is sleeping today\n");
return 0;
}