该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
首先,输入开始工作(打鱼)的日期;
然后,输入你要查询的日期(即询问这天是打鱼还是晒网);
最后,经过函数计算,得出这天是打鱼还是晒网。
献上小弟的程序,请大家指教一二!
int count1(year,month,day) /*计算得出month,day这一天到year这年的年初累计的天数*/
int year,month,day;
{
int suv=0,leap;
suv=count2(month)+day;
if((year%400==0)||(year%4==0&&year%100!=0))
leap=1;
else
leap=0;
if(leap==1&&month>2)
suv++;
return(suv);
}
int count2(mon) /*计算得出month月以前各月到此年年初累计的天数*/
int mon;
{
int sun=0;
switch(mon)
{
case 1:sun=0;break;
case 2:sun=31;break;
case 3:sun=59;break;
case 4:sun=90;break;
case 5:sun=120;break;
case 6:sun=151;break;
case 7:sun=181;break;
case 8:sun=212;break;
case 9:sun=243;break;
case 10:sun=273;break;
case 11:sun=304;break;
case 12:sun=334;break;
}
return(sun);
}
main()
{
int day1,month1,year1,sumj,sumf,
day2,month2,year2,sumb,
year,mo;
long sum=0;
printf("please input the start date:");
scanf("%d-%d-%d",&year1,&month1,&day1);
printf("please input the end date:");
scanf("%d-%d-%d",&year2,&month2,&day2);
for(year=year1+1;year
{
if((year%400==0)||(year%4==0&&year%100!=0)) sum++;
sum=sum+365;
}
sumj=count1(year1,month1,day1); /*算出开始日期到此年年初累计的天数*/
sumb=count1(year2,month2,day2); /*算出查询日期到此年年初累计的天数*/
if(year1==year2)
sum=sumb-sumj+1;
else
{ if((year1%400==0)||(year1%4==0&&year1%100!=0))
sumf=366-sumj+1; /*sumf表示开始打鱼的这天到此年年末累计的天数*/
else
sumf=365-sumj+1;
sum=sum+sumf+sumb;
}
mo=sum%5;
if(mo<=3)
printf("he is dayu! sum=%ld,mo=%d\n",sum,mo);
else
printf("he is shaiwang! sum=%ld,mo=%d\n",sum,mo);
}